package org.xtext.example.mydsl.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import org.xtext.example.mydsl.services.ComponentBasedSoftwareDevelopmentGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalComponentBasedSoftwareDevelopmentParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'import'", "'.'", "'.*'", "'between'", "'and'", "'alternation'", "','", "'leadsto'", "'causedby'", "'precedes'", "'follows'", "'::'", "'bind'", "'to'", "'instanceof'", "'component'", "'provides'", "'requires'", "'constraints'", "':'", "'interface '", "'('", "')'", "'datatype'", "'entity'", "'extends'", "'many'"
    };
    public static final int RULE_ID=4;
    public static final int T__40=40;
    public static final int T__29=29;
    public static final int T__28=28;
    public static final int T__27=27;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=10;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int RULE_SL_COMMENT=8;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__30=30;
    public static final int T__19=19;
    public static final int T__31=31;
    public static final int RULE_STRING=6;
    public static final int T__32=32;
    public static final int T__33=33;
    public static final int T__16=16;
    public static final int T__34=34;
    public static final int T__15=15;
    public static final int T__35=35;
    public static final int T__18=18;
    public static final int T__36=36;
    public static final int T__17=17;
    public static final int T__37=37;
    public static final int T__12=12;
    public static final int T__38=38;
    public static final int T__11=11;
    public static final int T__39=39;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=5;
    public static final int RULE_WS=9;

    // delegates
    // delegators


        public InternalComponentBasedSoftwareDevelopmentParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalComponentBasedSoftwareDevelopmentParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalComponentBasedSoftwareDevelopmentParser.tokenNames; }
    public String getGrammarFileName() { return "../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g"; }


     
     	private ComponentBasedSoftwareDevelopmentGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(ComponentBasedSoftwareDevelopmentGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start "entryRuleMain"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:60:1: entryRuleMain : ruleMain EOF ;
    public final void entryRuleMain() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:61:1: ( ruleMain EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:62:1: ruleMain EOF
            {
             before(grammarAccess.getMainRule()); 
            pushFollow(FOLLOW_ruleMain_in_entryRuleMain61);
            ruleMain();

            state._fsp--;

             after(grammarAccess.getMainRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMain68); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleMain"


    // $ANTLR start "ruleMain"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:69:1: ruleMain : ( ( rule__Main__ElementsAssignment )* ) ;
    public final void ruleMain() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:73:2: ( ( ( rule__Main__ElementsAssignment )* ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:74:1: ( ( rule__Main__ElementsAssignment )* )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:74:1: ( ( rule__Main__ElementsAssignment )* )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:75:1: ( rule__Main__ElementsAssignment )*
            {
             before(grammarAccess.getMainAccess().getElementsAssignment()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:76:1: ( rule__Main__ElementsAssignment )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==RULE_ID||LA1_0==11||LA1_0==14||LA1_0==26||LA1_0==29||LA1_0==34||(LA1_0>=37 && LA1_0<=38)) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:76:2: rule__Main__ElementsAssignment
            	    {
            	    pushFollow(FOLLOW_rule__Main__ElementsAssignment_in_ruleMain94);
            	    rule__Main__ElementsAssignment();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);

             after(grammarAccess.getMainAccess().getElementsAssignment()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleMain"


    // $ANTLR start "entryRuleAbstractElement"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:88:1: entryRuleAbstractElement : ruleAbstractElement EOF ;
    public final void entryRuleAbstractElement() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:89:1: ( ruleAbstractElement EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:90:1: ruleAbstractElement EOF
            {
             before(grammarAccess.getAbstractElementRule()); 
            pushFollow(FOLLOW_ruleAbstractElement_in_entryRuleAbstractElement122);
            ruleAbstractElement();

            state._fsp--;

             after(grammarAccess.getAbstractElementRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAbstractElement129); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAbstractElement"


    // $ANTLR start "ruleAbstractElement"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:97:1: ruleAbstractElement : ( ( rule__AbstractElement__Alternatives ) ) ;
    public final void ruleAbstractElement() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:101:2: ( ( ( rule__AbstractElement__Alternatives ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:102:1: ( ( rule__AbstractElement__Alternatives ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:102:1: ( ( rule__AbstractElement__Alternatives ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:103:1: ( rule__AbstractElement__Alternatives )
            {
             before(grammarAccess.getAbstractElementAccess().getAlternatives()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:104:1: ( rule__AbstractElement__Alternatives )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:104:2: rule__AbstractElement__Alternatives
            {
            pushFollow(FOLLOW_rule__AbstractElement__Alternatives_in_ruleAbstractElement155);
            rule__AbstractElement__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getAbstractElementAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAbstractElement"


    // $ANTLR start "entryRulePackageDeclaration"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:116:1: entryRulePackageDeclaration : rulePackageDeclaration EOF ;
    public final void entryRulePackageDeclaration() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:117:1: ( rulePackageDeclaration EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:118:1: rulePackageDeclaration EOF
            {
             before(grammarAccess.getPackageDeclarationRule()); 
            pushFollow(FOLLOW_rulePackageDeclaration_in_entryRulePackageDeclaration182);
            rulePackageDeclaration();

            state._fsp--;

             after(grammarAccess.getPackageDeclarationRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRulePackageDeclaration189); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePackageDeclaration"


    // $ANTLR start "rulePackageDeclaration"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:125:1: rulePackageDeclaration : ( ( rule__PackageDeclaration__Group__0 ) ) ;
    public final void rulePackageDeclaration() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:129:2: ( ( ( rule__PackageDeclaration__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:130:1: ( ( rule__PackageDeclaration__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:130:1: ( ( rule__PackageDeclaration__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:131:1: ( rule__PackageDeclaration__Group__0 )
            {
             before(grammarAccess.getPackageDeclarationAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:132:1: ( rule__PackageDeclaration__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:132:2: rule__PackageDeclaration__Group__0
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__Group__0_in_rulePackageDeclaration215);
            rule__PackageDeclaration__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getPackageDeclarationAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePackageDeclaration"


    // $ANTLR start "entryRulePackageImport"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:144:1: entryRulePackageImport : rulePackageImport EOF ;
    public final void entryRulePackageImport() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:145:1: ( rulePackageImport EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:146:1: rulePackageImport EOF
            {
             before(grammarAccess.getPackageImportRule()); 
            pushFollow(FOLLOW_rulePackageImport_in_entryRulePackageImport242);
            rulePackageImport();

            state._fsp--;

             after(grammarAccess.getPackageImportRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRulePackageImport249); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePackageImport"


    // $ANTLR start "rulePackageImport"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:153:1: rulePackageImport : ( ( rule__PackageImport__Group__0 ) ) ;
    public final void rulePackageImport() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:157:2: ( ( ( rule__PackageImport__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:158:1: ( ( rule__PackageImport__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:158:1: ( ( rule__PackageImport__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:159:1: ( rule__PackageImport__Group__0 )
            {
             before(grammarAccess.getPackageImportAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:160:1: ( rule__PackageImport__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:160:2: rule__PackageImport__Group__0
            {
            pushFollow(FOLLOW_rule__PackageImport__Group__0_in_rulePackageImport275);
            rule__PackageImport__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getPackageImportAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePackageImport"


    // $ANTLR start "entryRuleQualifiedName"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:172:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
    public final void entryRuleQualifiedName() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:173:1: ( ruleQualifiedName EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:174:1: ruleQualifiedName EOF
            {
             before(grammarAccess.getQualifiedNameRule()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName302);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getQualifiedNameRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName309); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleQualifiedName"


    // $ANTLR start "ruleQualifiedName"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:181:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
    public final void ruleQualifiedName() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:185:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:186:1: ( ( rule__QualifiedName__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:186:1: ( ( rule__QualifiedName__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:187:1: ( rule__QualifiedName__Group__0 )
            {
             before(grammarAccess.getQualifiedNameAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:188:1: ( rule__QualifiedName__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:188:2: rule__QualifiedName__Group__0
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName335);
            rule__QualifiedName__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getQualifiedNameAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleQualifiedName"


    // $ANTLR start "entryRuleQualifiedNameWithWildCard"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:200:1: entryRuleQualifiedNameWithWildCard : ruleQualifiedNameWithWildCard EOF ;
    public final void entryRuleQualifiedNameWithWildCard() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:201:1: ( ruleQualifiedNameWithWildCard EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:202:1: ruleQualifiedNameWithWildCard EOF
            {
             before(grammarAccess.getQualifiedNameWithWildCardRule()); 
            pushFollow(FOLLOW_ruleQualifiedNameWithWildCard_in_entryRuleQualifiedNameWithWildCard362);
            ruleQualifiedNameWithWildCard();

            state._fsp--;

             after(grammarAccess.getQualifiedNameWithWildCardRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameWithWildCard369); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleQualifiedNameWithWildCard"


    // $ANTLR start "ruleQualifiedNameWithWildCard"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:209:1: ruleQualifiedNameWithWildCard : ( ( rule__QualifiedNameWithWildCard__Group__0 ) ) ;
    public final void ruleQualifiedNameWithWildCard() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:213:2: ( ( ( rule__QualifiedNameWithWildCard__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:214:1: ( ( rule__QualifiedNameWithWildCard__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:214:1: ( ( rule__QualifiedNameWithWildCard__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:215:1: ( rule__QualifiedNameWithWildCard__Group__0 )
            {
             before(grammarAccess.getQualifiedNameWithWildCardAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:216:1: ( rule__QualifiedNameWithWildCard__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:216:2: rule__QualifiedNameWithWildCard__Group__0
            {
            pushFollow(FOLLOW_rule__QualifiedNameWithWildCard__Group__0_in_ruleQualifiedNameWithWildCard395);
            rule__QualifiedNameWithWildCard__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getQualifiedNameWithWildCardAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleQualifiedNameWithWildCard"


    // $ANTLR start "entryRuleComponentStatement"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:228:1: entryRuleComponentStatement : ruleComponentStatement EOF ;
    public final void entryRuleComponentStatement() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:229:1: ( ruleComponentStatement EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:230:1: ruleComponentStatement EOF
            {
             before(grammarAccess.getComponentStatementRule()); 
            pushFollow(FOLLOW_ruleComponentStatement_in_entryRuleComponentStatement422);
            ruleComponentStatement();

            state._fsp--;

             after(grammarAccess.getComponentStatementRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleComponentStatement429); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleComponentStatement"


    // $ANTLR start "ruleComponentStatement"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:237:1: ruleComponentStatement : ( ( rule__ComponentStatement__Alternatives ) ) ;
    public final void ruleComponentStatement() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:241:2: ( ( ( rule__ComponentStatement__Alternatives ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:242:1: ( ( rule__ComponentStatement__Alternatives ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:242:1: ( ( rule__ComponentStatement__Alternatives ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:243:1: ( rule__ComponentStatement__Alternatives )
            {
             before(grammarAccess.getComponentStatementAccess().getAlternatives()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:244:1: ( rule__ComponentStatement__Alternatives )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:244:2: rule__ComponentStatement__Alternatives
            {
            pushFollow(FOLLOW_rule__ComponentStatement__Alternatives_in_ruleComponentStatement455);
            rule__ComponentStatement__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getComponentStatementAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleComponentStatement"


    // $ANTLR start "entryRuleComponentBetweenConstraint"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:256:1: entryRuleComponentBetweenConstraint : ruleComponentBetweenConstraint EOF ;
    public final void entryRuleComponentBetweenConstraint() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:257:1: ( ruleComponentBetweenConstraint EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:258:1: ruleComponentBetweenConstraint EOF
            {
             before(grammarAccess.getComponentBetweenConstraintRule()); 
            pushFollow(FOLLOW_ruleComponentBetweenConstraint_in_entryRuleComponentBetweenConstraint482);
            ruleComponentBetweenConstraint();

            state._fsp--;

             after(grammarAccess.getComponentBetweenConstraintRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleComponentBetweenConstraint489); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleComponentBetweenConstraint"


    // $ANTLR start "ruleComponentBetweenConstraint"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:265:1: ruleComponentBetweenConstraint : ( ( rule__ComponentBetweenConstraint__Group__0 ) ) ;
    public final void ruleComponentBetweenConstraint() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:269:2: ( ( ( rule__ComponentBetweenConstraint__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:270:1: ( ( rule__ComponentBetweenConstraint__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:270:1: ( ( rule__ComponentBetweenConstraint__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:271:1: ( rule__ComponentBetweenConstraint__Group__0 )
            {
             before(grammarAccess.getComponentBetweenConstraintAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:272:1: ( rule__ComponentBetweenConstraint__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:272:2: rule__ComponentBetweenConstraint__Group__0
            {
            pushFollow(FOLLOW_rule__ComponentBetweenConstraint__Group__0_in_ruleComponentBetweenConstraint515);
            rule__ComponentBetweenConstraint__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getComponentBetweenConstraintAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleComponentBetweenConstraint"


    // $ANTLR start "entryRuleComponentAlternationConstraint"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:284:1: entryRuleComponentAlternationConstraint : ruleComponentAlternationConstraint EOF ;
    public final void entryRuleComponentAlternationConstraint() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:285:1: ( ruleComponentAlternationConstraint EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:286:1: ruleComponentAlternationConstraint EOF
            {
             before(grammarAccess.getComponentAlternationConstraintRule()); 
            pushFollow(FOLLOW_ruleComponentAlternationConstraint_in_entryRuleComponentAlternationConstraint542);
            ruleComponentAlternationConstraint();

            state._fsp--;

             after(grammarAccess.getComponentAlternationConstraintRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleComponentAlternationConstraint549); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleComponentAlternationConstraint"


    // $ANTLR start "ruleComponentAlternationConstraint"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:293:1: ruleComponentAlternationConstraint : ( ( rule__ComponentAlternationConstraint__Group__0 ) ) ;
    public final void ruleComponentAlternationConstraint() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:297:2: ( ( ( rule__ComponentAlternationConstraint__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:298:1: ( ( rule__ComponentAlternationConstraint__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:298:1: ( ( rule__ComponentAlternationConstraint__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:299:1: ( rule__ComponentAlternationConstraint__Group__0 )
            {
             before(grammarAccess.getComponentAlternationConstraintAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:300:1: ( rule__ComponentAlternationConstraint__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:300:2: rule__ComponentAlternationConstraint__Group__0
            {
            pushFollow(FOLLOW_rule__ComponentAlternationConstraint__Group__0_in_ruleComponentAlternationConstraint575);
            rule__ComponentAlternationConstraint__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getComponentAlternationConstraintAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleComponentAlternationConstraint"


    // $ANTLR start "entryRuleComponentLeadstoConstraint"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:312:1: entryRuleComponentLeadstoConstraint : ruleComponentLeadstoConstraint EOF ;
    public final void entryRuleComponentLeadstoConstraint() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:313:1: ( ruleComponentLeadstoConstraint EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:314:1: ruleComponentLeadstoConstraint EOF
            {
             before(grammarAccess.getComponentLeadstoConstraintRule()); 
            pushFollow(FOLLOW_ruleComponentLeadstoConstraint_in_entryRuleComponentLeadstoConstraint602);
            ruleComponentLeadstoConstraint();

            state._fsp--;

             after(grammarAccess.getComponentLeadstoConstraintRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleComponentLeadstoConstraint609); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleComponentLeadstoConstraint"


    // $ANTLR start "ruleComponentLeadstoConstraint"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:321:1: ruleComponentLeadstoConstraint : ( ( rule__ComponentLeadstoConstraint__Group__0 ) ) ;
    public final void ruleComponentLeadstoConstraint() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:325:2: ( ( ( rule__ComponentLeadstoConstraint__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:326:1: ( ( rule__ComponentLeadstoConstraint__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:326:1: ( ( rule__ComponentLeadstoConstraint__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:327:1: ( rule__ComponentLeadstoConstraint__Group__0 )
            {
             before(grammarAccess.getComponentLeadstoConstraintAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:328:1: ( rule__ComponentLeadstoConstraint__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:328:2: rule__ComponentLeadstoConstraint__Group__0
            {
            pushFollow(FOLLOW_rule__ComponentLeadstoConstraint__Group__0_in_ruleComponentLeadstoConstraint635);
            rule__ComponentLeadstoConstraint__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getComponentLeadstoConstraintAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleComponentLeadstoConstraint"


    // $ANTLR start "entryRuleComponentCausedbyConstraint"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:340:1: entryRuleComponentCausedbyConstraint : ruleComponentCausedbyConstraint EOF ;
    public final void entryRuleComponentCausedbyConstraint() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:341:1: ( ruleComponentCausedbyConstraint EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:342:1: ruleComponentCausedbyConstraint EOF
            {
             before(grammarAccess.getComponentCausedbyConstraintRule()); 
            pushFollow(FOLLOW_ruleComponentCausedbyConstraint_in_entryRuleComponentCausedbyConstraint662);
            ruleComponentCausedbyConstraint();

            state._fsp--;

             after(grammarAccess.getComponentCausedbyConstraintRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleComponentCausedbyConstraint669); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleComponentCausedbyConstraint"


    // $ANTLR start "ruleComponentCausedbyConstraint"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:349:1: ruleComponentCausedbyConstraint : ( ( rule__ComponentCausedbyConstraint__Group__0 ) ) ;
    public final void ruleComponentCausedbyConstraint() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:353:2: ( ( ( rule__ComponentCausedbyConstraint__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:354:1: ( ( rule__ComponentCausedbyConstraint__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:354:1: ( ( rule__ComponentCausedbyConstraint__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:355:1: ( rule__ComponentCausedbyConstraint__Group__0 )
            {
             before(grammarAccess.getComponentCausedbyConstraintAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:356:1: ( rule__ComponentCausedbyConstraint__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:356:2: rule__ComponentCausedbyConstraint__Group__0
            {
            pushFollow(FOLLOW_rule__ComponentCausedbyConstraint__Group__0_in_ruleComponentCausedbyConstraint695);
            rule__ComponentCausedbyConstraint__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getComponentCausedbyConstraintAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleComponentCausedbyConstraint"


    // $ANTLR start "entryRuleComponentPrecedesConstraint"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:368:1: entryRuleComponentPrecedesConstraint : ruleComponentPrecedesConstraint EOF ;
    public final void entryRuleComponentPrecedesConstraint() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:369:1: ( ruleComponentPrecedesConstraint EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:370:1: ruleComponentPrecedesConstraint EOF
            {
             before(grammarAccess.getComponentPrecedesConstraintRule()); 
            pushFollow(FOLLOW_ruleComponentPrecedesConstraint_in_entryRuleComponentPrecedesConstraint722);
            ruleComponentPrecedesConstraint();

            state._fsp--;

             after(grammarAccess.getComponentPrecedesConstraintRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleComponentPrecedesConstraint729); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleComponentPrecedesConstraint"


    // $ANTLR start "ruleComponentPrecedesConstraint"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:377:1: ruleComponentPrecedesConstraint : ( ( rule__ComponentPrecedesConstraint__Group__0 ) ) ;
    public final void ruleComponentPrecedesConstraint() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:381:2: ( ( ( rule__ComponentPrecedesConstraint__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:382:1: ( ( rule__ComponentPrecedesConstraint__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:382:1: ( ( rule__ComponentPrecedesConstraint__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:383:1: ( rule__ComponentPrecedesConstraint__Group__0 )
            {
             before(grammarAccess.getComponentPrecedesConstraintAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:384:1: ( rule__ComponentPrecedesConstraint__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:384:2: rule__ComponentPrecedesConstraint__Group__0
            {
            pushFollow(FOLLOW_rule__ComponentPrecedesConstraint__Group__0_in_ruleComponentPrecedesConstraint755);
            rule__ComponentPrecedesConstraint__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getComponentPrecedesConstraintAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleComponentPrecedesConstraint"


    // $ANTLR start "entryRuleComponentFollowsConstraint"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:396:1: entryRuleComponentFollowsConstraint : ruleComponentFollowsConstraint EOF ;
    public final void entryRuleComponentFollowsConstraint() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:397:1: ( ruleComponentFollowsConstraint EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:398:1: ruleComponentFollowsConstraint EOF
            {
             before(grammarAccess.getComponentFollowsConstraintRule()); 
            pushFollow(FOLLOW_ruleComponentFollowsConstraint_in_entryRuleComponentFollowsConstraint782);
            ruleComponentFollowsConstraint();

            state._fsp--;

             after(grammarAccess.getComponentFollowsConstraintRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleComponentFollowsConstraint789); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleComponentFollowsConstraint"


    // $ANTLR start "ruleComponentFollowsConstraint"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:405:1: ruleComponentFollowsConstraint : ( ( rule__ComponentFollowsConstraint__Group__0 ) ) ;
    public final void ruleComponentFollowsConstraint() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:409:2: ( ( ( rule__ComponentFollowsConstraint__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:410:1: ( ( rule__ComponentFollowsConstraint__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:410:1: ( ( rule__ComponentFollowsConstraint__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:411:1: ( rule__ComponentFollowsConstraint__Group__0 )
            {
             before(grammarAccess.getComponentFollowsConstraintAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:412:1: ( rule__ComponentFollowsConstraint__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:412:2: rule__ComponentFollowsConstraint__Group__0
            {
            pushFollow(FOLLOW_rule__ComponentFollowsConstraint__Group__0_in_ruleComponentFollowsConstraint815);
            rule__ComponentFollowsConstraint__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getComponentFollowsConstraintAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleComponentFollowsConstraint"


    // $ANTLR start "entryRuleComponentActionStatement"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:424:1: entryRuleComponentActionStatement : ruleComponentActionStatement EOF ;
    public final void entryRuleComponentActionStatement() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:425:1: ( ruleComponentActionStatement EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:426:1: ruleComponentActionStatement EOF
            {
             before(grammarAccess.getComponentActionStatementRule()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_entryRuleComponentActionStatement842);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentActionStatementRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleComponentActionStatement849); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleComponentActionStatement"


    // $ANTLR start "ruleComponentActionStatement"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:433:1: ruleComponentActionStatement : ( ( rule__ComponentActionStatement__Group__0 ) ) ;
    public final void ruleComponentActionStatement() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:437:2: ( ( ( rule__ComponentActionStatement__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:438:1: ( ( rule__ComponentActionStatement__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:438:1: ( ( rule__ComponentActionStatement__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:439:1: ( rule__ComponentActionStatement__Group__0 )
            {
             before(grammarAccess.getComponentActionStatementAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:440:1: ( rule__ComponentActionStatement__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:440:2: rule__ComponentActionStatement__Group__0
            {
            pushFollow(FOLLOW_rule__ComponentActionStatement__Group__0_in_ruleComponentActionStatement875);
            rule__ComponentActionStatement__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getComponentActionStatementAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleComponentActionStatement"


    // $ANTLR start "entryRuleBindComponents"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:452:1: entryRuleBindComponents : ruleBindComponents EOF ;
    public final void entryRuleBindComponents() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:453:1: ( ruleBindComponents EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:454:1: ruleBindComponents EOF
            {
             before(grammarAccess.getBindComponentsRule()); 
            pushFollow(FOLLOW_ruleBindComponents_in_entryRuleBindComponents902);
            ruleBindComponents();

            state._fsp--;

             after(grammarAccess.getBindComponentsRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleBindComponents909); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleBindComponents"


    // $ANTLR start "ruleBindComponents"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:461:1: ruleBindComponents : ( ( rule__BindComponents__Group__0 ) ) ;
    public final void ruleBindComponents() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:465:2: ( ( ( rule__BindComponents__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:466:1: ( ( rule__BindComponents__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:466:1: ( ( rule__BindComponents__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:467:1: ( rule__BindComponents__Group__0 )
            {
             before(grammarAccess.getBindComponentsAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:468:1: ( rule__BindComponents__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:468:2: rule__BindComponents__Group__0
            {
            pushFollow(FOLLOW_rule__BindComponents__Group__0_in_ruleBindComponents935);
            rule__BindComponents__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getBindComponentsAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleBindComponents"


    // $ANTLR start "entryRuleComponentInstance"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:480:1: entryRuleComponentInstance : ruleComponentInstance EOF ;
    public final void entryRuleComponentInstance() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:481:1: ( ruleComponentInstance EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:482:1: ruleComponentInstance EOF
            {
             before(grammarAccess.getComponentInstanceRule()); 
            pushFollow(FOLLOW_ruleComponentInstance_in_entryRuleComponentInstance962);
            ruleComponentInstance();

            state._fsp--;

             after(grammarAccess.getComponentInstanceRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleComponentInstance969); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleComponentInstance"


    // $ANTLR start "ruleComponentInstance"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:489:1: ruleComponentInstance : ( ( rule__ComponentInstance__Group__0 ) ) ;
    public final void ruleComponentInstance() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:493:2: ( ( ( rule__ComponentInstance__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:494:1: ( ( rule__ComponentInstance__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:494:1: ( ( rule__ComponentInstance__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:495:1: ( rule__ComponentInstance__Group__0 )
            {
             before(grammarAccess.getComponentInstanceAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:496:1: ( rule__ComponentInstance__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:496:2: rule__ComponentInstance__Group__0
            {
            pushFollow(FOLLOW_rule__ComponentInstance__Group__0_in_ruleComponentInstance995);
            rule__ComponentInstance__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getComponentInstanceAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleComponentInstance"


    // $ANTLR start "entryRuleComponent"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:508:1: entryRuleComponent : ruleComponent EOF ;
    public final void entryRuleComponent() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:509:1: ( ruleComponent EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:510:1: ruleComponent EOF
            {
             before(grammarAccess.getComponentRule()); 
            pushFollow(FOLLOW_ruleComponent_in_entryRuleComponent1022);
            ruleComponent();

            state._fsp--;

             after(grammarAccess.getComponentRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleComponent1029); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleComponent"


    // $ANTLR start "ruleComponent"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:517:1: ruleComponent : ( ( rule__Component__Group__0 ) ) ;
    public final void ruleComponent() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:521:2: ( ( ( rule__Component__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:522:1: ( ( rule__Component__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:522:1: ( ( rule__Component__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:523:1: ( rule__Component__Group__0 )
            {
             before(grammarAccess.getComponentAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:524:1: ( rule__Component__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:524:2: rule__Component__Group__0
            {
            pushFollow(FOLLOW_rule__Component__Group__0_in_ruleComponent1055);
            rule__Component__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getComponentAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleComponent"


    // $ANTLR start "entryRuleContract"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:536:1: entryRuleContract : ruleContract EOF ;
    public final void entryRuleContract() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:537:1: ( ruleContract EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:538:1: ruleContract EOF
            {
             before(grammarAccess.getContractRule()); 
            pushFollow(FOLLOW_ruleContract_in_entryRuleContract1082);
            ruleContract();

            state._fsp--;

             after(grammarAccess.getContractRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleContract1089); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleContract"


    // $ANTLR start "ruleContract"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:545:1: ruleContract : ( ( rule__Contract__Group__0 ) ) ;
    public final void ruleContract() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:549:2: ( ( ( rule__Contract__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:550:1: ( ( rule__Contract__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:550:1: ( ( rule__Contract__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:551:1: ( rule__Contract__Group__0 )
            {
             before(grammarAccess.getContractAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:552:1: ( rule__Contract__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:552:2: rule__Contract__Group__0
            {
            pushFollow(FOLLOW_rule__Contract__Group__0_in_ruleContract1115);
            rule__Contract__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getContractAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleContract"


    // $ANTLR start "entryRuleInterface"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:564:1: entryRuleInterface : ruleInterface EOF ;
    public final void entryRuleInterface() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:565:1: ( ruleInterface EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:566:1: ruleInterface EOF
            {
             before(grammarAccess.getInterfaceRule()); 
            pushFollow(FOLLOW_ruleInterface_in_entryRuleInterface1142);
            ruleInterface();

            state._fsp--;

             after(grammarAccess.getInterfaceRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleInterface1149); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleInterface"


    // $ANTLR start "ruleInterface"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:573:1: ruleInterface : ( ( rule__Interface__Group__0 ) ) ;
    public final void ruleInterface() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:577:2: ( ( ( rule__Interface__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:578:1: ( ( rule__Interface__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:578:1: ( ( rule__Interface__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:579:1: ( rule__Interface__Group__0 )
            {
             before(grammarAccess.getInterfaceAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:580:1: ( rule__Interface__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:580:2: rule__Interface__Group__0
            {
            pushFollow(FOLLOW_rule__Interface__Group__0_in_ruleInterface1175);
            rule__Interface__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getInterfaceAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleInterface"


    // $ANTLR start "entryRuleAction"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:592:1: entryRuleAction : ruleAction EOF ;
    public final void entryRuleAction() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:593:1: ( ruleAction EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:594:1: ruleAction EOF
            {
             before(grammarAccess.getActionRule()); 
            pushFollow(FOLLOW_ruleAction_in_entryRuleAction1202);
            ruleAction();

            state._fsp--;

             after(grammarAccess.getActionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAction1209); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAction"


    // $ANTLR start "ruleAction"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:601:1: ruleAction : ( ( rule__Action__Group__0 ) ) ;
    public final void ruleAction() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:605:2: ( ( ( rule__Action__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:606:1: ( ( rule__Action__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:606:1: ( ( rule__Action__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:607:1: ( rule__Action__Group__0 )
            {
             before(grammarAccess.getActionAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:608:1: ( rule__Action__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:608:2: rule__Action__Group__0
            {
            pushFollow(FOLLOW_rule__Action__Group__0_in_ruleAction1235);
            rule__Action__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getActionAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAction"


    // $ANTLR start "entryRuleParameter"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:620:1: entryRuleParameter : ruleParameter EOF ;
    public final void entryRuleParameter() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:621:1: ( ruleParameter EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:622:1: ruleParameter EOF
            {
             before(grammarAccess.getParameterRule()); 
            pushFollow(FOLLOW_ruleParameter_in_entryRuleParameter1262);
            ruleParameter();

            state._fsp--;

             after(grammarAccess.getParameterRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleParameter1269); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleParameter"


    // $ANTLR start "ruleParameter"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:629:1: ruleParameter : ( ( rule__Parameter__Group__0 ) ) ;
    public final void ruleParameter() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:633:2: ( ( ( rule__Parameter__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:634:1: ( ( rule__Parameter__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:634:1: ( ( rule__Parameter__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:635:1: ( rule__Parameter__Group__0 )
            {
             before(grammarAccess.getParameterAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:636:1: ( rule__Parameter__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:636:2: rule__Parameter__Group__0
            {
            pushFollow(FOLLOW_rule__Parameter__Group__0_in_ruleParameter1295);
            rule__Parameter__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getParameterAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleParameter"


    // $ANTLR start "entryRuleType"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:648:1: entryRuleType : ruleType EOF ;
    public final void entryRuleType() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:649:1: ( ruleType EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:650:1: ruleType EOF
            {
             before(grammarAccess.getTypeRule()); 
            pushFollow(FOLLOW_ruleType_in_entryRuleType1322);
            ruleType();

            state._fsp--;

             after(grammarAccess.getTypeRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleType1329); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleType"


    // $ANTLR start "ruleType"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:657:1: ruleType : ( ( rule__Type__Alternatives ) ) ;
    public final void ruleType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:661:2: ( ( ( rule__Type__Alternatives ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:662:1: ( ( rule__Type__Alternatives ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:662:1: ( ( rule__Type__Alternatives ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:663:1: ( rule__Type__Alternatives )
            {
             before(grammarAccess.getTypeAccess().getAlternatives()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:664:1: ( rule__Type__Alternatives )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:664:2: rule__Type__Alternatives
            {
            pushFollow(FOLLOW_rule__Type__Alternatives_in_ruleType1355);
            rule__Type__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getTypeAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleType"


    // $ANTLR start "entryRuleDataType"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:676:1: entryRuleDataType : ruleDataType EOF ;
    public final void entryRuleDataType() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:677:1: ( ruleDataType EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:678:1: ruleDataType EOF
            {
             before(grammarAccess.getDataTypeRule()); 
            pushFollow(FOLLOW_ruleDataType_in_entryRuleDataType1382);
            ruleDataType();

            state._fsp--;

             after(grammarAccess.getDataTypeRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDataType1389); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleDataType"


    // $ANTLR start "ruleDataType"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:685:1: ruleDataType : ( ( rule__DataType__Group__0 ) ) ;
    public final void ruleDataType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:689:2: ( ( ( rule__DataType__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:690:1: ( ( rule__DataType__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:690:1: ( ( rule__DataType__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:691:1: ( rule__DataType__Group__0 )
            {
             before(grammarAccess.getDataTypeAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:692:1: ( rule__DataType__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:692:2: rule__DataType__Group__0
            {
            pushFollow(FOLLOW_rule__DataType__Group__0_in_ruleDataType1415);
            rule__DataType__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getDataTypeAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleDataType"


    // $ANTLR start "entryRuleEntity"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:704:1: entryRuleEntity : ruleEntity EOF ;
    public final void entryRuleEntity() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:705:1: ( ruleEntity EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:706:1: ruleEntity EOF
            {
             before(grammarAccess.getEntityRule()); 
            pushFollow(FOLLOW_ruleEntity_in_entryRuleEntity1442);
            ruleEntity();

            state._fsp--;

             after(grammarAccess.getEntityRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleEntity1449); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleEntity"


    // $ANTLR start "ruleEntity"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:713:1: ruleEntity : ( ( rule__Entity__Group__0 ) ) ;
    public final void ruleEntity() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:717:2: ( ( ( rule__Entity__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:718:1: ( ( rule__Entity__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:718:1: ( ( rule__Entity__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:719:1: ( rule__Entity__Group__0 )
            {
             before(grammarAccess.getEntityAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:720:1: ( rule__Entity__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:720:2: rule__Entity__Group__0
            {
            pushFollow(FOLLOW_rule__Entity__Group__0_in_ruleEntity1475);
            rule__Entity__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getEntityAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleEntity"


    // $ANTLR start "entryRuleAttribute"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:732:1: entryRuleAttribute : ruleAttribute EOF ;
    public final void entryRuleAttribute() throws RecognitionException {
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:733:1: ( ruleAttribute EOF )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:734:1: ruleAttribute EOF
            {
             before(grammarAccess.getAttributeRule()); 
            pushFollow(FOLLOW_ruleAttribute_in_entryRuleAttribute1502);
            ruleAttribute();

            state._fsp--;

             after(grammarAccess.getAttributeRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAttribute1509); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAttribute"


    // $ANTLR start "ruleAttribute"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:741:1: ruleAttribute : ( ( rule__Attribute__Group__0 ) ) ;
    public final void ruleAttribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:745:2: ( ( ( rule__Attribute__Group__0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:746:1: ( ( rule__Attribute__Group__0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:746:1: ( ( rule__Attribute__Group__0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:747:1: ( rule__Attribute__Group__0 )
            {
             before(grammarAccess.getAttributeAccess().getGroup()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:748:1: ( rule__Attribute__Group__0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:748:2: rule__Attribute__Group__0
            {
            pushFollow(FOLLOW_rule__Attribute__Group__0_in_ruleAttribute1535);
            rule__Attribute__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getAttributeAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAttribute"


    // $ANTLR start "rule__AbstractElement__Alternatives"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:760:1: rule__AbstractElement__Alternatives : ( ( rulePackageDeclaration ) | ( ruleComponent ) | ( ruleInterface ) | ( ruleType ) | ( ruleComponentInstance ) | ( rulePackageImport ) | ( ruleBindComponents ) );
    public final void rule__AbstractElement__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:764:1: ( ( rulePackageDeclaration ) | ( ruleComponent ) | ( ruleInterface ) | ( ruleType ) | ( ruleComponentInstance ) | ( rulePackageImport ) | ( ruleBindComponents ) )
            int alt2=7;
            switch ( input.LA(1) ) {
            case 11:
                {
                alt2=1;
                }
                break;
            case 29:
                {
                alt2=2;
                }
                break;
            case 34:
                {
                alt2=3;
                }
                break;
            case 37:
            case 38:
                {
                alt2=4;
                }
                break;
            case RULE_ID:
                {
                alt2=5;
                }
                break;
            case 14:
                {
                alt2=6;
                }
                break;
            case 26:
                {
                alt2=7;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }

            switch (alt2) {
                case 1 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:765:1: ( rulePackageDeclaration )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:765:1: ( rulePackageDeclaration )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:766:1: rulePackageDeclaration
                    {
                     before(grammarAccess.getAbstractElementAccess().getPackageDeclarationParserRuleCall_0()); 
                    pushFollow(FOLLOW_rulePackageDeclaration_in_rule__AbstractElement__Alternatives1571);
                    rulePackageDeclaration();

                    state._fsp--;

                     after(grammarAccess.getAbstractElementAccess().getPackageDeclarationParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:771:6: ( ruleComponent )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:771:6: ( ruleComponent )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:772:1: ruleComponent
                    {
                     before(grammarAccess.getAbstractElementAccess().getComponentParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleComponent_in_rule__AbstractElement__Alternatives1588);
                    ruleComponent();

                    state._fsp--;

                     after(grammarAccess.getAbstractElementAccess().getComponentParserRuleCall_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:777:6: ( ruleInterface )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:777:6: ( ruleInterface )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:778:1: ruleInterface
                    {
                     before(grammarAccess.getAbstractElementAccess().getInterfaceParserRuleCall_2()); 
                    pushFollow(FOLLOW_ruleInterface_in_rule__AbstractElement__Alternatives1605);
                    ruleInterface();

                    state._fsp--;

                     after(grammarAccess.getAbstractElementAccess().getInterfaceParserRuleCall_2()); 

                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:783:6: ( ruleType )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:783:6: ( ruleType )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:784:1: ruleType
                    {
                     before(grammarAccess.getAbstractElementAccess().getTypeParserRuleCall_3()); 
                    pushFollow(FOLLOW_ruleType_in_rule__AbstractElement__Alternatives1622);
                    ruleType();

                    state._fsp--;

                     after(grammarAccess.getAbstractElementAccess().getTypeParserRuleCall_3()); 

                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:789:6: ( ruleComponentInstance )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:789:6: ( ruleComponentInstance )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:790:1: ruleComponentInstance
                    {
                     before(grammarAccess.getAbstractElementAccess().getComponentInstanceParserRuleCall_4()); 
                    pushFollow(FOLLOW_ruleComponentInstance_in_rule__AbstractElement__Alternatives1639);
                    ruleComponentInstance();

                    state._fsp--;

                     after(grammarAccess.getAbstractElementAccess().getComponentInstanceParserRuleCall_4()); 

                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:795:6: ( rulePackageImport )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:795:6: ( rulePackageImport )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:796:1: rulePackageImport
                    {
                     before(grammarAccess.getAbstractElementAccess().getPackageImportParserRuleCall_5()); 
                    pushFollow(FOLLOW_rulePackageImport_in_rule__AbstractElement__Alternatives1656);
                    rulePackageImport();

                    state._fsp--;

                     after(grammarAccess.getAbstractElementAccess().getPackageImportParserRuleCall_5()); 

                    }


                    }
                    break;
                case 7 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:801:6: ( ruleBindComponents )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:801:6: ( ruleBindComponents )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:802:1: ruleBindComponents
                    {
                     before(grammarAccess.getAbstractElementAccess().getBindComponentsParserRuleCall_6()); 
                    pushFollow(FOLLOW_ruleBindComponents_in_rule__AbstractElement__Alternatives1673);
                    ruleBindComponents();

                    state._fsp--;

                     after(grammarAccess.getAbstractElementAccess().getBindComponentsParserRuleCall_6()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__AbstractElement__Alternatives"


    // $ANTLR start "rule__ComponentStatement__Alternatives"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:812:1: rule__ComponentStatement__Alternatives : ( ( ruleComponentFollowsConstraint ) | ( ruleComponentPrecedesConstraint ) | ( ruleComponentCausedbyConstraint ) | ( ruleComponentLeadstoConstraint ) | ( ruleComponentAlternationConstraint ) | ( ruleComponentBetweenConstraint ) );
    public final void rule__ComponentStatement__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:816:1: ( ( ruleComponentFollowsConstraint ) | ( ruleComponentPrecedesConstraint ) | ( ruleComponentCausedbyConstraint ) | ( ruleComponentLeadstoConstraint ) | ( ruleComponentAlternationConstraint ) | ( ruleComponentBetweenConstraint ) )
            int alt3=6;
            alt3 = dfa3.predict(input);
            switch (alt3) {
                case 1 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:817:1: ( ruleComponentFollowsConstraint )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:817:1: ( ruleComponentFollowsConstraint )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:818:1: ruleComponentFollowsConstraint
                    {
                     before(grammarAccess.getComponentStatementAccess().getComponentFollowsConstraintParserRuleCall_0()); 
                    pushFollow(FOLLOW_ruleComponentFollowsConstraint_in_rule__ComponentStatement__Alternatives1705);
                    ruleComponentFollowsConstraint();

                    state._fsp--;

                     after(grammarAccess.getComponentStatementAccess().getComponentFollowsConstraintParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:823:6: ( ruleComponentPrecedesConstraint )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:823:6: ( ruleComponentPrecedesConstraint )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:824:1: ruleComponentPrecedesConstraint
                    {
                     before(grammarAccess.getComponentStatementAccess().getComponentPrecedesConstraintParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleComponentPrecedesConstraint_in_rule__ComponentStatement__Alternatives1722);
                    ruleComponentPrecedesConstraint();

                    state._fsp--;

                     after(grammarAccess.getComponentStatementAccess().getComponentPrecedesConstraintParserRuleCall_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:829:6: ( ruleComponentCausedbyConstraint )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:829:6: ( ruleComponentCausedbyConstraint )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:830:1: ruleComponentCausedbyConstraint
                    {
                     before(grammarAccess.getComponentStatementAccess().getComponentCausedbyConstraintParserRuleCall_2()); 
                    pushFollow(FOLLOW_ruleComponentCausedbyConstraint_in_rule__ComponentStatement__Alternatives1739);
                    ruleComponentCausedbyConstraint();

                    state._fsp--;

                     after(grammarAccess.getComponentStatementAccess().getComponentCausedbyConstraintParserRuleCall_2()); 

                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:835:6: ( ruleComponentLeadstoConstraint )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:835:6: ( ruleComponentLeadstoConstraint )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:836:1: ruleComponentLeadstoConstraint
                    {
                     before(grammarAccess.getComponentStatementAccess().getComponentLeadstoConstraintParserRuleCall_3()); 
                    pushFollow(FOLLOW_ruleComponentLeadstoConstraint_in_rule__ComponentStatement__Alternatives1756);
                    ruleComponentLeadstoConstraint();

                    state._fsp--;

                     after(grammarAccess.getComponentStatementAccess().getComponentLeadstoConstraintParserRuleCall_3()); 

                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:841:6: ( ruleComponentAlternationConstraint )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:841:6: ( ruleComponentAlternationConstraint )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:842:1: ruleComponentAlternationConstraint
                    {
                     before(grammarAccess.getComponentStatementAccess().getComponentAlternationConstraintParserRuleCall_4()); 
                    pushFollow(FOLLOW_ruleComponentAlternationConstraint_in_rule__ComponentStatement__Alternatives1773);
                    ruleComponentAlternationConstraint();

                    state._fsp--;

                     after(grammarAccess.getComponentStatementAccess().getComponentAlternationConstraintParserRuleCall_4()); 

                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:847:6: ( ruleComponentBetweenConstraint )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:847:6: ( ruleComponentBetweenConstraint )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:848:1: ruleComponentBetweenConstraint
                    {
                     before(grammarAccess.getComponentStatementAccess().getComponentBetweenConstraintParserRuleCall_5()); 
                    pushFollow(FOLLOW_ruleComponentBetweenConstraint_in_rule__ComponentStatement__Alternatives1790);
                    ruleComponentBetweenConstraint();

                    state._fsp--;

                     after(grammarAccess.getComponentStatementAccess().getComponentBetweenConstraintParserRuleCall_5()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentStatement__Alternatives"


    // $ANTLR start "rule__Component__Alternatives_3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:858:1: rule__Component__Alternatives_3 : ( ( ( rule__Component__Group_3_0__0 ) ) | ( ( rule__Component__Group_3_1__0 ) ) );
    public final void rule__Component__Alternatives_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:862:1: ( ( ( rule__Component__Group_3_0__0 ) ) | ( ( rule__Component__Group_3_1__0 ) ) )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==30) ) {
                alt4=1;
            }
            else if ( (LA4_0==31) ) {
                alt4=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:863:1: ( ( rule__Component__Group_3_0__0 ) )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:863:1: ( ( rule__Component__Group_3_0__0 ) )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:864:1: ( rule__Component__Group_3_0__0 )
                    {
                     before(grammarAccess.getComponentAccess().getGroup_3_0()); 
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:865:1: ( rule__Component__Group_3_0__0 )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:865:2: rule__Component__Group_3_0__0
                    {
                    pushFollow(FOLLOW_rule__Component__Group_3_0__0_in_rule__Component__Alternatives_31822);
                    rule__Component__Group_3_0__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getComponentAccess().getGroup_3_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:869:6: ( ( rule__Component__Group_3_1__0 ) )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:869:6: ( ( rule__Component__Group_3_1__0 ) )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:870:1: ( rule__Component__Group_3_1__0 )
                    {
                     before(grammarAccess.getComponentAccess().getGroup_3_1()); 
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:871:1: ( rule__Component__Group_3_1__0 )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:871:2: rule__Component__Group_3_1__0
                    {
                    pushFollow(FOLLOW_rule__Component__Group_3_1__0_in_rule__Component__Alternatives_31840);
                    rule__Component__Group_3_1__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getComponentAccess().getGroup_3_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Alternatives_3"


    // $ANTLR start "rule__Type__Alternatives"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:880:1: rule__Type__Alternatives : ( ( ruleDataType ) | ( ruleEntity ) );
    public final void rule__Type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:884:1: ( ( ruleDataType ) | ( ruleEntity ) )
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==37) ) {
                alt5=1;
            }
            else if ( (LA5_0==38) ) {
                alt5=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;
            }
            switch (alt5) {
                case 1 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:885:1: ( ruleDataType )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:885:1: ( ruleDataType )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:886:1: ruleDataType
                    {
                     before(grammarAccess.getTypeAccess().getDataTypeParserRuleCall_0()); 
                    pushFollow(FOLLOW_ruleDataType_in_rule__Type__Alternatives1873);
                    ruleDataType();

                    state._fsp--;

                     after(grammarAccess.getTypeAccess().getDataTypeParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:891:6: ( ruleEntity )
                    {
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:891:6: ( ruleEntity )
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:892:1: ruleEntity
                    {
                     before(grammarAccess.getTypeAccess().getEntityParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleEntity_in_rule__Type__Alternatives1890);
                    ruleEntity();

                    state._fsp--;

                     after(grammarAccess.getTypeAccess().getEntityParserRuleCall_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Alternatives"


    // $ANTLR start "rule__PackageDeclaration__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:904:1: rule__PackageDeclaration__Group__0 : rule__PackageDeclaration__Group__0__Impl rule__PackageDeclaration__Group__1 ;
    public final void rule__PackageDeclaration__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:908:1: ( rule__PackageDeclaration__Group__0__Impl rule__PackageDeclaration__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:909:2: rule__PackageDeclaration__Group__0__Impl rule__PackageDeclaration__Group__1
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__Group__0__Impl_in_rule__PackageDeclaration__Group__01920);
            rule__PackageDeclaration__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__PackageDeclaration__Group__1_in_rule__PackageDeclaration__Group__01923);
            rule__PackageDeclaration__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageDeclaration__Group__0"


    // $ANTLR start "rule__PackageDeclaration__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:916:1: rule__PackageDeclaration__Group__0__Impl : ( 'package' ) ;
    public final void rule__PackageDeclaration__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:920:1: ( ( 'package' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:921:1: ( 'package' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:921:1: ( 'package' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:922:1: 'package'
            {
             before(grammarAccess.getPackageDeclarationAccess().getPackageKeyword_0()); 
            match(input,11,FOLLOW_11_in_rule__PackageDeclaration__Group__0__Impl1951); 
             after(grammarAccess.getPackageDeclarationAccess().getPackageKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageDeclaration__Group__0__Impl"


    // $ANTLR start "rule__PackageDeclaration__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:935:1: rule__PackageDeclaration__Group__1 : rule__PackageDeclaration__Group__1__Impl rule__PackageDeclaration__Group__2 ;
    public final void rule__PackageDeclaration__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:939:1: ( rule__PackageDeclaration__Group__1__Impl rule__PackageDeclaration__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:940:2: rule__PackageDeclaration__Group__1__Impl rule__PackageDeclaration__Group__2
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__Group__1__Impl_in_rule__PackageDeclaration__Group__11982);
            rule__PackageDeclaration__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__PackageDeclaration__Group__2_in_rule__PackageDeclaration__Group__11985);
            rule__PackageDeclaration__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageDeclaration__Group__1"


    // $ANTLR start "rule__PackageDeclaration__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:947:1: rule__PackageDeclaration__Group__1__Impl : ( ( rule__PackageDeclaration__NameAssignment_1 ) ) ;
    public final void rule__PackageDeclaration__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:951:1: ( ( ( rule__PackageDeclaration__NameAssignment_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:952:1: ( ( rule__PackageDeclaration__NameAssignment_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:952:1: ( ( rule__PackageDeclaration__NameAssignment_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:953:1: ( rule__PackageDeclaration__NameAssignment_1 )
            {
             before(grammarAccess.getPackageDeclarationAccess().getNameAssignment_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:954:1: ( rule__PackageDeclaration__NameAssignment_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:954:2: rule__PackageDeclaration__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__NameAssignment_1_in_rule__PackageDeclaration__Group__1__Impl2012);
            rule__PackageDeclaration__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getPackageDeclarationAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageDeclaration__Group__1__Impl"


    // $ANTLR start "rule__PackageDeclaration__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:964:1: rule__PackageDeclaration__Group__2 : rule__PackageDeclaration__Group__2__Impl rule__PackageDeclaration__Group__3 ;
    public final void rule__PackageDeclaration__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:968:1: ( rule__PackageDeclaration__Group__2__Impl rule__PackageDeclaration__Group__3 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:969:2: rule__PackageDeclaration__Group__2__Impl rule__PackageDeclaration__Group__3
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__Group__2__Impl_in_rule__PackageDeclaration__Group__22042);
            rule__PackageDeclaration__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__PackageDeclaration__Group__3_in_rule__PackageDeclaration__Group__22045);
            rule__PackageDeclaration__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageDeclaration__Group__2"


    // $ANTLR start "rule__PackageDeclaration__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:976:1: rule__PackageDeclaration__Group__2__Impl : ( '{' ) ;
    public final void rule__PackageDeclaration__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:980:1: ( ( '{' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:981:1: ( '{' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:981:1: ( '{' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:982:1: '{'
            {
             before(grammarAccess.getPackageDeclarationAccess().getLeftCurlyBracketKeyword_2()); 
            match(input,12,FOLLOW_12_in_rule__PackageDeclaration__Group__2__Impl2073); 
             after(grammarAccess.getPackageDeclarationAccess().getLeftCurlyBracketKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageDeclaration__Group__2__Impl"


    // $ANTLR start "rule__PackageDeclaration__Group__3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:995:1: rule__PackageDeclaration__Group__3 : rule__PackageDeclaration__Group__3__Impl rule__PackageDeclaration__Group__4 ;
    public final void rule__PackageDeclaration__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:999:1: ( rule__PackageDeclaration__Group__3__Impl rule__PackageDeclaration__Group__4 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1000:2: rule__PackageDeclaration__Group__3__Impl rule__PackageDeclaration__Group__4
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__Group__3__Impl_in_rule__PackageDeclaration__Group__32104);
            rule__PackageDeclaration__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__PackageDeclaration__Group__4_in_rule__PackageDeclaration__Group__32107);
            rule__PackageDeclaration__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageDeclaration__Group__3"


    // $ANTLR start "rule__PackageDeclaration__Group__3__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1007:1: rule__PackageDeclaration__Group__3__Impl : ( ( rule__PackageDeclaration__ElementsAssignment_3 )* ) ;
    public final void rule__PackageDeclaration__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1011:1: ( ( ( rule__PackageDeclaration__ElementsAssignment_3 )* ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1012:1: ( ( rule__PackageDeclaration__ElementsAssignment_3 )* )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1012:1: ( ( rule__PackageDeclaration__ElementsAssignment_3 )* )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1013:1: ( rule__PackageDeclaration__ElementsAssignment_3 )*
            {
             before(grammarAccess.getPackageDeclarationAccess().getElementsAssignment_3()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1014:1: ( rule__PackageDeclaration__ElementsAssignment_3 )*
            loop6:
            do {
                int alt6=2;
                int LA6_0 = input.LA(1);

                if ( (LA6_0==RULE_ID||LA6_0==11||LA6_0==14||LA6_0==26||LA6_0==29||LA6_0==34||(LA6_0>=37 && LA6_0<=38)) ) {
                    alt6=1;
                }


                switch (alt6) {
            	case 1 :
            	    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1014:2: rule__PackageDeclaration__ElementsAssignment_3
            	    {
            	    pushFollow(FOLLOW_rule__PackageDeclaration__ElementsAssignment_3_in_rule__PackageDeclaration__Group__3__Impl2134);
            	    rule__PackageDeclaration__ElementsAssignment_3();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop6;
                }
            } while (true);

             after(grammarAccess.getPackageDeclarationAccess().getElementsAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageDeclaration__Group__3__Impl"


    // $ANTLR start "rule__PackageDeclaration__Group__4"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1024:1: rule__PackageDeclaration__Group__4 : rule__PackageDeclaration__Group__4__Impl ;
    public final void rule__PackageDeclaration__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1028:1: ( rule__PackageDeclaration__Group__4__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1029:2: rule__PackageDeclaration__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__PackageDeclaration__Group__4__Impl_in_rule__PackageDeclaration__Group__42165);
            rule__PackageDeclaration__Group__4__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageDeclaration__Group__4"


    // $ANTLR start "rule__PackageDeclaration__Group__4__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1035:1: rule__PackageDeclaration__Group__4__Impl : ( '}' ) ;
    public final void rule__PackageDeclaration__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1039:1: ( ( '}' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1040:1: ( '}' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1040:1: ( '}' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1041:1: '}'
            {
             before(grammarAccess.getPackageDeclarationAccess().getRightCurlyBracketKeyword_4()); 
            match(input,13,FOLLOW_13_in_rule__PackageDeclaration__Group__4__Impl2193); 
             after(grammarAccess.getPackageDeclarationAccess().getRightCurlyBracketKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageDeclaration__Group__4__Impl"


    // $ANTLR start "rule__PackageImport__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1064:1: rule__PackageImport__Group__0 : rule__PackageImport__Group__0__Impl rule__PackageImport__Group__1 ;
    public final void rule__PackageImport__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1068:1: ( rule__PackageImport__Group__0__Impl rule__PackageImport__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1069:2: rule__PackageImport__Group__0__Impl rule__PackageImport__Group__1
            {
            pushFollow(FOLLOW_rule__PackageImport__Group__0__Impl_in_rule__PackageImport__Group__02234);
            rule__PackageImport__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__PackageImport__Group__1_in_rule__PackageImport__Group__02237);
            rule__PackageImport__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageImport__Group__0"


    // $ANTLR start "rule__PackageImport__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1076:1: rule__PackageImport__Group__0__Impl : ( 'import' ) ;
    public final void rule__PackageImport__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1080:1: ( ( 'import' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1081:1: ( 'import' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1081:1: ( 'import' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1082:1: 'import'
            {
             before(grammarAccess.getPackageImportAccess().getImportKeyword_0()); 
            match(input,14,FOLLOW_14_in_rule__PackageImport__Group__0__Impl2265); 
             after(grammarAccess.getPackageImportAccess().getImportKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageImport__Group__0__Impl"


    // $ANTLR start "rule__PackageImport__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1095:1: rule__PackageImport__Group__1 : rule__PackageImport__Group__1__Impl ;
    public final void rule__PackageImport__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1099:1: ( rule__PackageImport__Group__1__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1100:2: rule__PackageImport__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__PackageImport__Group__1__Impl_in_rule__PackageImport__Group__12296);
            rule__PackageImport__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageImport__Group__1"


    // $ANTLR start "rule__PackageImport__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1106:1: rule__PackageImport__Group__1__Impl : ( ( rule__PackageImport__ImportedNamespaceAssignment_1 ) ) ;
    public final void rule__PackageImport__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1110:1: ( ( ( rule__PackageImport__ImportedNamespaceAssignment_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1111:1: ( ( rule__PackageImport__ImportedNamespaceAssignment_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1111:1: ( ( rule__PackageImport__ImportedNamespaceAssignment_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1112:1: ( rule__PackageImport__ImportedNamespaceAssignment_1 )
            {
             before(grammarAccess.getPackageImportAccess().getImportedNamespaceAssignment_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1113:1: ( rule__PackageImport__ImportedNamespaceAssignment_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1113:2: rule__PackageImport__ImportedNamespaceAssignment_1
            {
            pushFollow(FOLLOW_rule__PackageImport__ImportedNamespaceAssignment_1_in_rule__PackageImport__Group__1__Impl2323);
            rule__PackageImport__ImportedNamespaceAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getPackageImportAccess().getImportedNamespaceAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageImport__Group__1__Impl"


    // $ANTLR start "rule__QualifiedName__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1127:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
    public final void rule__QualifiedName__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1131:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1132:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__0__Impl_in_rule__QualifiedName__Group__02357);
            rule__QualifiedName__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__QualifiedName__Group__1_in_rule__QualifiedName__Group__02360);
            rule__QualifiedName__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__0"


    // $ANTLR start "rule__QualifiedName__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1139:1: rule__QualifiedName__Group__0__Impl : ( RULE_ID ) ;
    public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1143:1: ( ( RULE_ID ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1144:1: ( RULE_ID )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1144:1: ( RULE_ID )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1145:1: RULE_ID
            {
             before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__QualifiedName__Group__0__Impl2387); 
             after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__0__Impl"


    // $ANTLR start "rule__QualifiedName__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1156:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
    public final void rule__QualifiedName__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1160:1: ( rule__QualifiedName__Group__1__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1161:2: rule__QualifiedName__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group__1__Impl_in_rule__QualifiedName__Group__12416);
            rule__QualifiedName__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__1"


    // $ANTLR start "rule__QualifiedName__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1167:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
    public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1171:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1172:1: ( ( rule__QualifiedName__Group_1__0 )* )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1172:1: ( ( rule__QualifiedName__Group_1__0 )* )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1173:1: ( rule__QualifiedName__Group_1__0 )*
            {
             before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1174:1: ( rule__QualifiedName__Group_1__0 )*
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( (LA7_0==15) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1174:2: rule__QualifiedName__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__QualifiedName__Group_1__0_in_rule__QualifiedName__Group__1__Impl2443);
            	    rule__QualifiedName__Group_1__0();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop7;
                }
            } while (true);

             after(grammarAccess.getQualifiedNameAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__1__Impl"


    // $ANTLR start "rule__QualifiedName__Group_1__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1188:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
    public final void rule__QualifiedName__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1192:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1193:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group_1__0__Impl_in_rule__QualifiedName__Group_1__02478);
            rule__QualifiedName__Group_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__QualifiedName__Group_1__1_in_rule__QualifiedName__Group_1__02481);
            rule__QualifiedName__Group_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__0"


    // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1200:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
    public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1204:1: ( ( '.' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1205:1: ( '.' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1205:1: ( '.' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1206:1: '.'
            {
             before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
            match(input,15,FOLLOW_15_in_rule__QualifiedName__Group_1__0__Impl2509); 
             after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__0__Impl"


    // $ANTLR start "rule__QualifiedName__Group_1__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1219:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
    public final void rule__QualifiedName__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1223:1: ( rule__QualifiedName__Group_1__1__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1224:2: rule__QualifiedName__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__QualifiedName__Group_1__1__Impl_in_rule__QualifiedName__Group_1__12540);
            rule__QualifiedName__Group_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__1"


    // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1230:1: rule__QualifiedName__Group_1__1__Impl : ( RULE_ID ) ;
    public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1234:1: ( ( RULE_ID ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1235:1: ( RULE_ID )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1235:1: ( RULE_ID )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1236:1: RULE_ID
            {
             before(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__QualifiedName__Group_1__1__Impl2567); 
             after(grammarAccess.getQualifiedNameAccess().getIDTerminalRuleCall_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__1__Impl"


    // $ANTLR start "rule__QualifiedNameWithWildCard__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1251:1: rule__QualifiedNameWithWildCard__Group__0 : rule__QualifiedNameWithWildCard__Group__0__Impl rule__QualifiedNameWithWildCard__Group__1 ;
    public final void rule__QualifiedNameWithWildCard__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1255:1: ( rule__QualifiedNameWithWildCard__Group__0__Impl rule__QualifiedNameWithWildCard__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1256:2: rule__QualifiedNameWithWildCard__Group__0__Impl rule__QualifiedNameWithWildCard__Group__1
            {
            pushFollow(FOLLOW_rule__QualifiedNameWithWildCard__Group__0__Impl_in_rule__QualifiedNameWithWildCard__Group__02600);
            rule__QualifiedNameWithWildCard__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__QualifiedNameWithWildCard__Group__1_in_rule__QualifiedNameWithWildCard__Group__02603);
            rule__QualifiedNameWithWildCard__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildCard__Group__0"


    // $ANTLR start "rule__QualifiedNameWithWildCard__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1263:1: rule__QualifiedNameWithWildCard__Group__0__Impl : ( ruleQualifiedName ) ;
    public final void rule__QualifiedNameWithWildCard__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1267:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1268:1: ( ruleQualifiedName )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1268:1: ( ruleQualifiedName )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1269:1: ruleQualifiedName
            {
             before(grammarAccess.getQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__QualifiedNameWithWildCard__Group__0__Impl2630);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildCard__Group__0__Impl"


    // $ANTLR start "rule__QualifiedNameWithWildCard__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1280:1: rule__QualifiedNameWithWildCard__Group__1 : rule__QualifiedNameWithWildCard__Group__1__Impl ;
    public final void rule__QualifiedNameWithWildCard__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1284:1: ( rule__QualifiedNameWithWildCard__Group__1__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1285:2: rule__QualifiedNameWithWildCard__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__QualifiedNameWithWildCard__Group__1__Impl_in_rule__QualifiedNameWithWildCard__Group__12659);
            rule__QualifiedNameWithWildCard__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildCard__Group__1"


    // $ANTLR start "rule__QualifiedNameWithWildCard__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1291:1: rule__QualifiedNameWithWildCard__Group__1__Impl : ( ( '.*' )? ) ;
    public final void rule__QualifiedNameWithWildCard__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1295:1: ( ( ( '.*' )? ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1296:1: ( ( '.*' )? )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1296:1: ( ( '.*' )? )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1297:1: ( '.*' )?
            {
             before(grammarAccess.getQualifiedNameWithWildCardAccess().getFullStopAsteriskKeyword_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1298:1: ( '.*' )?
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==16) ) {
                alt8=1;
            }
            switch (alt8) {
                case 1 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1299:2: '.*'
                    {
                    match(input,16,FOLLOW_16_in_rule__QualifiedNameWithWildCard__Group__1__Impl2688); 

                    }
                    break;

            }

             after(grammarAccess.getQualifiedNameWithWildCardAccess().getFullStopAsteriskKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildCard__Group__1__Impl"


    // $ANTLR start "rule__ComponentBetweenConstraint__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1314:1: rule__ComponentBetweenConstraint__Group__0 : rule__ComponentBetweenConstraint__Group__0__Impl rule__ComponentBetweenConstraint__Group__1 ;
    public final void rule__ComponentBetweenConstraint__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1318:1: ( rule__ComponentBetweenConstraint__Group__0__Impl rule__ComponentBetweenConstraint__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1319:2: rule__ComponentBetweenConstraint__Group__0__Impl rule__ComponentBetweenConstraint__Group__1
            {
            pushFollow(FOLLOW_rule__ComponentBetweenConstraint__Group__0__Impl_in_rule__ComponentBetweenConstraint__Group__02725);
            rule__ComponentBetweenConstraint__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentBetweenConstraint__Group__1_in_rule__ComponentBetweenConstraint__Group__02728);
            rule__ComponentBetweenConstraint__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentBetweenConstraint__Group__0"


    // $ANTLR start "rule__ComponentBetweenConstraint__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1326:1: rule__ComponentBetweenConstraint__Group__0__Impl : ( ( rule__ComponentBetweenConstraint__MiddleActionAssignment_0 ) ) ;
    public final void rule__ComponentBetweenConstraint__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1330:1: ( ( ( rule__ComponentBetweenConstraint__MiddleActionAssignment_0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1331:1: ( ( rule__ComponentBetweenConstraint__MiddleActionAssignment_0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1331:1: ( ( rule__ComponentBetweenConstraint__MiddleActionAssignment_0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1332:1: ( rule__ComponentBetweenConstraint__MiddleActionAssignment_0 )
            {
             before(grammarAccess.getComponentBetweenConstraintAccess().getMiddleActionAssignment_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1333:1: ( rule__ComponentBetweenConstraint__MiddleActionAssignment_0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1333:2: rule__ComponentBetweenConstraint__MiddleActionAssignment_0
            {
            pushFollow(FOLLOW_rule__ComponentBetweenConstraint__MiddleActionAssignment_0_in_rule__ComponentBetweenConstraint__Group__0__Impl2755);
            rule__ComponentBetweenConstraint__MiddleActionAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getComponentBetweenConstraintAccess().getMiddleActionAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentBetweenConstraint__Group__0__Impl"


    // $ANTLR start "rule__ComponentBetweenConstraint__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1343:1: rule__ComponentBetweenConstraint__Group__1 : rule__ComponentBetweenConstraint__Group__1__Impl rule__ComponentBetweenConstraint__Group__2 ;
    public final void rule__ComponentBetweenConstraint__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1347:1: ( rule__ComponentBetweenConstraint__Group__1__Impl rule__ComponentBetweenConstraint__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1348:2: rule__ComponentBetweenConstraint__Group__1__Impl rule__ComponentBetweenConstraint__Group__2
            {
            pushFollow(FOLLOW_rule__ComponentBetweenConstraint__Group__1__Impl_in_rule__ComponentBetweenConstraint__Group__12785);
            rule__ComponentBetweenConstraint__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentBetweenConstraint__Group__2_in_rule__ComponentBetweenConstraint__Group__12788);
            rule__ComponentBetweenConstraint__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentBetweenConstraint__Group__1"


    // $ANTLR start "rule__ComponentBetweenConstraint__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1355:1: rule__ComponentBetweenConstraint__Group__1__Impl : ( 'between' ) ;
    public final void rule__ComponentBetweenConstraint__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1359:1: ( ( 'between' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1360:1: ( 'between' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1360:1: ( 'between' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1361:1: 'between'
            {
             before(grammarAccess.getComponentBetweenConstraintAccess().getBetweenKeyword_1()); 
            match(input,17,FOLLOW_17_in_rule__ComponentBetweenConstraint__Group__1__Impl2816); 
             after(grammarAccess.getComponentBetweenConstraintAccess().getBetweenKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentBetweenConstraint__Group__1__Impl"


    // $ANTLR start "rule__ComponentBetweenConstraint__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1374:1: rule__ComponentBetweenConstraint__Group__2 : rule__ComponentBetweenConstraint__Group__2__Impl rule__ComponentBetweenConstraint__Group__3 ;
    public final void rule__ComponentBetweenConstraint__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1378:1: ( rule__ComponentBetweenConstraint__Group__2__Impl rule__ComponentBetweenConstraint__Group__3 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1379:2: rule__ComponentBetweenConstraint__Group__2__Impl rule__ComponentBetweenConstraint__Group__3
            {
            pushFollow(FOLLOW_rule__ComponentBetweenConstraint__Group__2__Impl_in_rule__ComponentBetweenConstraint__Group__22847);
            rule__ComponentBetweenConstraint__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentBetweenConstraint__Group__3_in_rule__ComponentBetweenConstraint__Group__22850);
            rule__ComponentBetweenConstraint__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentBetweenConstraint__Group__2"


    // $ANTLR start "rule__ComponentBetweenConstraint__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1386:1: rule__ComponentBetweenConstraint__Group__2__Impl : ( ( rule__ComponentBetweenConstraint__BeforeActionAssignment_2 ) ) ;
    public final void rule__ComponentBetweenConstraint__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1390:1: ( ( ( rule__ComponentBetweenConstraint__BeforeActionAssignment_2 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1391:1: ( ( rule__ComponentBetweenConstraint__BeforeActionAssignment_2 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1391:1: ( ( rule__ComponentBetweenConstraint__BeforeActionAssignment_2 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1392:1: ( rule__ComponentBetweenConstraint__BeforeActionAssignment_2 )
            {
             before(grammarAccess.getComponentBetweenConstraintAccess().getBeforeActionAssignment_2()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1393:1: ( rule__ComponentBetweenConstraint__BeforeActionAssignment_2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1393:2: rule__ComponentBetweenConstraint__BeforeActionAssignment_2
            {
            pushFollow(FOLLOW_rule__ComponentBetweenConstraint__BeforeActionAssignment_2_in_rule__ComponentBetweenConstraint__Group__2__Impl2877);
            rule__ComponentBetweenConstraint__BeforeActionAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getComponentBetweenConstraintAccess().getBeforeActionAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentBetweenConstraint__Group__2__Impl"


    // $ANTLR start "rule__ComponentBetweenConstraint__Group__3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1403:1: rule__ComponentBetweenConstraint__Group__3 : rule__ComponentBetweenConstraint__Group__3__Impl rule__ComponentBetweenConstraint__Group__4 ;
    public final void rule__ComponentBetweenConstraint__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1407:1: ( rule__ComponentBetweenConstraint__Group__3__Impl rule__ComponentBetweenConstraint__Group__4 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1408:2: rule__ComponentBetweenConstraint__Group__3__Impl rule__ComponentBetweenConstraint__Group__4
            {
            pushFollow(FOLLOW_rule__ComponentBetweenConstraint__Group__3__Impl_in_rule__ComponentBetweenConstraint__Group__32907);
            rule__ComponentBetweenConstraint__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentBetweenConstraint__Group__4_in_rule__ComponentBetweenConstraint__Group__32910);
            rule__ComponentBetweenConstraint__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentBetweenConstraint__Group__3"


    // $ANTLR start "rule__ComponentBetweenConstraint__Group__3__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1415:1: rule__ComponentBetweenConstraint__Group__3__Impl : ( 'and' ) ;
    public final void rule__ComponentBetweenConstraint__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1419:1: ( ( 'and' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1420:1: ( 'and' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1420:1: ( 'and' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1421:1: 'and'
            {
             before(grammarAccess.getComponentBetweenConstraintAccess().getAndKeyword_3()); 
            match(input,18,FOLLOW_18_in_rule__ComponentBetweenConstraint__Group__3__Impl2938); 
             after(grammarAccess.getComponentBetweenConstraintAccess().getAndKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentBetweenConstraint__Group__3__Impl"


    // $ANTLR start "rule__ComponentBetweenConstraint__Group__4"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1434:1: rule__ComponentBetweenConstraint__Group__4 : rule__ComponentBetweenConstraint__Group__4__Impl ;
    public final void rule__ComponentBetweenConstraint__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1438:1: ( rule__ComponentBetweenConstraint__Group__4__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1439:2: rule__ComponentBetweenConstraint__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__ComponentBetweenConstraint__Group__4__Impl_in_rule__ComponentBetweenConstraint__Group__42969);
            rule__ComponentBetweenConstraint__Group__4__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentBetweenConstraint__Group__4"


    // $ANTLR start "rule__ComponentBetweenConstraint__Group__4__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1445:1: rule__ComponentBetweenConstraint__Group__4__Impl : ( ( rule__ComponentBetweenConstraint__AfterActionAssignment_4 ) ) ;
    public final void rule__ComponentBetweenConstraint__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1449:1: ( ( ( rule__ComponentBetweenConstraint__AfterActionAssignment_4 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1450:1: ( ( rule__ComponentBetweenConstraint__AfterActionAssignment_4 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1450:1: ( ( rule__ComponentBetweenConstraint__AfterActionAssignment_4 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1451:1: ( rule__ComponentBetweenConstraint__AfterActionAssignment_4 )
            {
             before(grammarAccess.getComponentBetweenConstraintAccess().getAfterActionAssignment_4()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1452:1: ( rule__ComponentBetweenConstraint__AfterActionAssignment_4 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1452:2: rule__ComponentBetweenConstraint__AfterActionAssignment_4
            {
            pushFollow(FOLLOW_rule__ComponentBetweenConstraint__AfterActionAssignment_4_in_rule__ComponentBetweenConstraint__Group__4__Impl2996);
            rule__ComponentBetweenConstraint__AfterActionAssignment_4();

            state._fsp--;


            }

             after(grammarAccess.getComponentBetweenConstraintAccess().getAfterActionAssignment_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentBetweenConstraint__Group__4__Impl"


    // $ANTLR start "rule__ComponentAlternationConstraint__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1472:1: rule__ComponentAlternationConstraint__Group__0 : rule__ComponentAlternationConstraint__Group__0__Impl rule__ComponentAlternationConstraint__Group__1 ;
    public final void rule__ComponentAlternationConstraint__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1476:1: ( rule__ComponentAlternationConstraint__Group__0__Impl rule__ComponentAlternationConstraint__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1477:2: rule__ComponentAlternationConstraint__Group__0__Impl rule__ComponentAlternationConstraint__Group__1
            {
            pushFollow(FOLLOW_rule__ComponentAlternationConstraint__Group__0__Impl_in_rule__ComponentAlternationConstraint__Group__03036);
            rule__ComponentAlternationConstraint__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentAlternationConstraint__Group__1_in_rule__ComponentAlternationConstraint__Group__03039);
            rule__ComponentAlternationConstraint__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentAlternationConstraint__Group__0"


    // $ANTLR start "rule__ComponentAlternationConstraint__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1484:1: rule__ComponentAlternationConstraint__Group__0__Impl : ( 'alternation' ) ;
    public final void rule__ComponentAlternationConstraint__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1488:1: ( ( 'alternation' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1489:1: ( 'alternation' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1489:1: ( 'alternation' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1490:1: 'alternation'
            {
             before(grammarAccess.getComponentAlternationConstraintAccess().getAlternationKeyword_0()); 
            match(input,19,FOLLOW_19_in_rule__ComponentAlternationConstraint__Group__0__Impl3067); 
             after(grammarAccess.getComponentAlternationConstraintAccess().getAlternationKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentAlternationConstraint__Group__0__Impl"


    // $ANTLR start "rule__ComponentAlternationConstraint__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1503:1: rule__ComponentAlternationConstraint__Group__1 : rule__ComponentAlternationConstraint__Group__1__Impl rule__ComponentAlternationConstraint__Group__2 ;
    public final void rule__ComponentAlternationConstraint__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1507:1: ( rule__ComponentAlternationConstraint__Group__1__Impl rule__ComponentAlternationConstraint__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1508:2: rule__ComponentAlternationConstraint__Group__1__Impl rule__ComponentAlternationConstraint__Group__2
            {
            pushFollow(FOLLOW_rule__ComponentAlternationConstraint__Group__1__Impl_in_rule__ComponentAlternationConstraint__Group__13098);
            rule__ComponentAlternationConstraint__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentAlternationConstraint__Group__2_in_rule__ComponentAlternationConstraint__Group__13101);
            rule__ComponentAlternationConstraint__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentAlternationConstraint__Group__1"


    // $ANTLR start "rule__ComponentAlternationConstraint__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1515:1: rule__ComponentAlternationConstraint__Group__1__Impl : ( ( rule__ComponentAlternationConstraint__Action1Assignment_1 ) ) ;
    public final void rule__ComponentAlternationConstraint__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1519:1: ( ( ( rule__ComponentAlternationConstraint__Action1Assignment_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1520:1: ( ( rule__ComponentAlternationConstraint__Action1Assignment_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1520:1: ( ( rule__ComponentAlternationConstraint__Action1Assignment_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1521:1: ( rule__ComponentAlternationConstraint__Action1Assignment_1 )
            {
             before(grammarAccess.getComponentAlternationConstraintAccess().getAction1Assignment_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1522:1: ( rule__ComponentAlternationConstraint__Action1Assignment_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1522:2: rule__ComponentAlternationConstraint__Action1Assignment_1
            {
            pushFollow(FOLLOW_rule__ComponentAlternationConstraint__Action1Assignment_1_in_rule__ComponentAlternationConstraint__Group__1__Impl3128);
            rule__ComponentAlternationConstraint__Action1Assignment_1();

            state._fsp--;


            }

             after(grammarAccess.getComponentAlternationConstraintAccess().getAction1Assignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentAlternationConstraint__Group__1__Impl"


    // $ANTLR start "rule__ComponentAlternationConstraint__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1532:1: rule__ComponentAlternationConstraint__Group__2 : rule__ComponentAlternationConstraint__Group__2__Impl rule__ComponentAlternationConstraint__Group__3 ;
    public final void rule__ComponentAlternationConstraint__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1536:1: ( rule__ComponentAlternationConstraint__Group__2__Impl rule__ComponentAlternationConstraint__Group__3 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1537:2: rule__ComponentAlternationConstraint__Group__2__Impl rule__ComponentAlternationConstraint__Group__3
            {
            pushFollow(FOLLOW_rule__ComponentAlternationConstraint__Group__2__Impl_in_rule__ComponentAlternationConstraint__Group__23158);
            rule__ComponentAlternationConstraint__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentAlternationConstraint__Group__3_in_rule__ComponentAlternationConstraint__Group__23161);
            rule__ComponentAlternationConstraint__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentAlternationConstraint__Group__2"


    // $ANTLR start "rule__ComponentAlternationConstraint__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1544:1: rule__ComponentAlternationConstraint__Group__2__Impl : ( ',' ) ;
    public final void rule__ComponentAlternationConstraint__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1548:1: ( ( ',' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1549:1: ( ',' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1549:1: ( ',' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1550:1: ','
            {
             before(grammarAccess.getComponentAlternationConstraintAccess().getCommaKeyword_2()); 
            match(input,20,FOLLOW_20_in_rule__ComponentAlternationConstraint__Group__2__Impl3189); 
             after(grammarAccess.getComponentAlternationConstraintAccess().getCommaKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentAlternationConstraint__Group__2__Impl"


    // $ANTLR start "rule__ComponentAlternationConstraint__Group__3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1563:1: rule__ComponentAlternationConstraint__Group__3 : rule__ComponentAlternationConstraint__Group__3__Impl ;
    public final void rule__ComponentAlternationConstraint__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1567:1: ( rule__ComponentAlternationConstraint__Group__3__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1568:2: rule__ComponentAlternationConstraint__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__ComponentAlternationConstraint__Group__3__Impl_in_rule__ComponentAlternationConstraint__Group__33220);
            rule__ComponentAlternationConstraint__Group__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentAlternationConstraint__Group__3"


    // $ANTLR start "rule__ComponentAlternationConstraint__Group__3__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1574:1: rule__ComponentAlternationConstraint__Group__3__Impl : ( ( rule__ComponentAlternationConstraint__Action2Assignment_3 ) ) ;
    public final void rule__ComponentAlternationConstraint__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1578:1: ( ( ( rule__ComponentAlternationConstraint__Action2Assignment_3 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1579:1: ( ( rule__ComponentAlternationConstraint__Action2Assignment_3 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1579:1: ( ( rule__ComponentAlternationConstraint__Action2Assignment_3 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1580:1: ( rule__ComponentAlternationConstraint__Action2Assignment_3 )
            {
             before(grammarAccess.getComponentAlternationConstraintAccess().getAction2Assignment_3()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1581:1: ( rule__ComponentAlternationConstraint__Action2Assignment_3 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1581:2: rule__ComponentAlternationConstraint__Action2Assignment_3
            {
            pushFollow(FOLLOW_rule__ComponentAlternationConstraint__Action2Assignment_3_in_rule__ComponentAlternationConstraint__Group__3__Impl3247);
            rule__ComponentAlternationConstraint__Action2Assignment_3();

            state._fsp--;


            }

             after(grammarAccess.getComponentAlternationConstraintAccess().getAction2Assignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentAlternationConstraint__Group__3__Impl"


    // $ANTLR start "rule__ComponentLeadstoConstraint__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1599:1: rule__ComponentLeadstoConstraint__Group__0 : rule__ComponentLeadstoConstraint__Group__0__Impl rule__ComponentLeadstoConstraint__Group__1 ;
    public final void rule__ComponentLeadstoConstraint__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1603:1: ( rule__ComponentLeadstoConstraint__Group__0__Impl rule__ComponentLeadstoConstraint__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1604:2: rule__ComponentLeadstoConstraint__Group__0__Impl rule__ComponentLeadstoConstraint__Group__1
            {
            pushFollow(FOLLOW_rule__ComponentLeadstoConstraint__Group__0__Impl_in_rule__ComponentLeadstoConstraint__Group__03285);
            rule__ComponentLeadstoConstraint__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentLeadstoConstraint__Group__1_in_rule__ComponentLeadstoConstraint__Group__03288);
            rule__ComponentLeadstoConstraint__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentLeadstoConstraint__Group__0"


    // $ANTLR start "rule__ComponentLeadstoConstraint__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1611:1: rule__ComponentLeadstoConstraint__Group__0__Impl : ( ( rule__ComponentLeadstoConstraint__LeftActionAssignment_0 ) ) ;
    public final void rule__ComponentLeadstoConstraint__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1615:1: ( ( ( rule__ComponentLeadstoConstraint__LeftActionAssignment_0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1616:1: ( ( rule__ComponentLeadstoConstraint__LeftActionAssignment_0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1616:1: ( ( rule__ComponentLeadstoConstraint__LeftActionAssignment_0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1617:1: ( rule__ComponentLeadstoConstraint__LeftActionAssignment_0 )
            {
             before(grammarAccess.getComponentLeadstoConstraintAccess().getLeftActionAssignment_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1618:1: ( rule__ComponentLeadstoConstraint__LeftActionAssignment_0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1618:2: rule__ComponentLeadstoConstraint__LeftActionAssignment_0
            {
            pushFollow(FOLLOW_rule__ComponentLeadstoConstraint__LeftActionAssignment_0_in_rule__ComponentLeadstoConstraint__Group__0__Impl3315);
            rule__ComponentLeadstoConstraint__LeftActionAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getComponentLeadstoConstraintAccess().getLeftActionAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentLeadstoConstraint__Group__0__Impl"


    // $ANTLR start "rule__ComponentLeadstoConstraint__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1628:1: rule__ComponentLeadstoConstraint__Group__1 : rule__ComponentLeadstoConstraint__Group__1__Impl rule__ComponentLeadstoConstraint__Group__2 ;
    public final void rule__ComponentLeadstoConstraint__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1632:1: ( rule__ComponentLeadstoConstraint__Group__1__Impl rule__ComponentLeadstoConstraint__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1633:2: rule__ComponentLeadstoConstraint__Group__1__Impl rule__ComponentLeadstoConstraint__Group__2
            {
            pushFollow(FOLLOW_rule__ComponentLeadstoConstraint__Group__1__Impl_in_rule__ComponentLeadstoConstraint__Group__13345);
            rule__ComponentLeadstoConstraint__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentLeadstoConstraint__Group__2_in_rule__ComponentLeadstoConstraint__Group__13348);
            rule__ComponentLeadstoConstraint__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentLeadstoConstraint__Group__1"


    // $ANTLR start "rule__ComponentLeadstoConstraint__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1640:1: rule__ComponentLeadstoConstraint__Group__1__Impl : ( 'leadsto' ) ;
    public final void rule__ComponentLeadstoConstraint__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1644:1: ( ( 'leadsto' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1645:1: ( 'leadsto' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1645:1: ( 'leadsto' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1646:1: 'leadsto'
            {
             before(grammarAccess.getComponentLeadstoConstraintAccess().getLeadstoKeyword_1()); 
            match(input,21,FOLLOW_21_in_rule__ComponentLeadstoConstraint__Group__1__Impl3376); 
             after(grammarAccess.getComponentLeadstoConstraintAccess().getLeadstoKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentLeadstoConstraint__Group__1__Impl"


    // $ANTLR start "rule__ComponentLeadstoConstraint__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1659:1: rule__ComponentLeadstoConstraint__Group__2 : rule__ComponentLeadstoConstraint__Group__2__Impl ;
    public final void rule__ComponentLeadstoConstraint__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1663:1: ( rule__ComponentLeadstoConstraint__Group__2__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1664:2: rule__ComponentLeadstoConstraint__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__ComponentLeadstoConstraint__Group__2__Impl_in_rule__ComponentLeadstoConstraint__Group__23407);
            rule__ComponentLeadstoConstraint__Group__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentLeadstoConstraint__Group__2"


    // $ANTLR start "rule__ComponentLeadstoConstraint__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1670:1: rule__ComponentLeadstoConstraint__Group__2__Impl : ( ( rule__ComponentLeadstoConstraint__RightActionAssignment_2 ) ) ;
    public final void rule__ComponentLeadstoConstraint__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1674:1: ( ( ( rule__ComponentLeadstoConstraint__RightActionAssignment_2 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1675:1: ( ( rule__ComponentLeadstoConstraint__RightActionAssignment_2 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1675:1: ( ( rule__ComponentLeadstoConstraint__RightActionAssignment_2 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1676:1: ( rule__ComponentLeadstoConstraint__RightActionAssignment_2 )
            {
             before(grammarAccess.getComponentLeadstoConstraintAccess().getRightActionAssignment_2()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1677:1: ( rule__ComponentLeadstoConstraint__RightActionAssignment_2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1677:2: rule__ComponentLeadstoConstraint__RightActionAssignment_2
            {
            pushFollow(FOLLOW_rule__ComponentLeadstoConstraint__RightActionAssignment_2_in_rule__ComponentLeadstoConstraint__Group__2__Impl3434);
            rule__ComponentLeadstoConstraint__RightActionAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getComponentLeadstoConstraintAccess().getRightActionAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentLeadstoConstraint__Group__2__Impl"


    // $ANTLR start "rule__ComponentCausedbyConstraint__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1693:1: rule__ComponentCausedbyConstraint__Group__0 : rule__ComponentCausedbyConstraint__Group__0__Impl rule__ComponentCausedbyConstraint__Group__1 ;
    public final void rule__ComponentCausedbyConstraint__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1697:1: ( rule__ComponentCausedbyConstraint__Group__0__Impl rule__ComponentCausedbyConstraint__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1698:2: rule__ComponentCausedbyConstraint__Group__0__Impl rule__ComponentCausedbyConstraint__Group__1
            {
            pushFollow(FOLLOW_rule__ComponentCausedbyConstraint__Group__0__Impl_in_rule__ComponentCausedbyConstraint__Group__03470);
            rule__ComponentCausedbyConstraint__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentCausedbyConstraint__Group__1_in_rule__ComponentCausedbyConstraint__Group__03473);
            rule__ComponentCausedbyConstraint__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentCausedbyConstraint__Group__0"


    // $ANTLR start "rule__ComponentCausedbyConstraint__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1705:1: rule__ComponentCausedbyConstraint__Group__0__Impl : ( ( rule__ComponentCausedbyConstraint__LeftActionAssignment_0 ) ) ;
    public final void rule__ComponentCausedbyConstraint__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1709:1: ( ( ( rule__ComponentCausedbyConstraint__LeftActionAssignment_0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1710:1: ( ( rule__ComponentCausedbyConstraint__LeftActionAssignment_0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1710:1: ( ( rule__ComponentCausedbyConstraint__LeftActionAssignment_0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1711:1: ( rule__ComponentCausedbyConstraint__LeftActionAssignment_0 )
            {
             before(grammarAccess.getComponentCausedbyConstraintAccess().getLeftActionAssignment_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1712:1: ( rule__ComponentCausedbyConstraint__LeftActionAssignment_0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1712:2: rule__ComponentCausedbyConstraint__LeftActionAssignment_0
            {
            pushFollow(FOLLOW_rule__ComponentCausedbyConstraint__LeftActionAssignment_0_in_rule__ComponentCausedbyConstraint__Group__0__Impl3500);
            rule__ComponentCausedbyConstraint__LeftActionAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getComponentCausedbyConstraintAccess().getLeftActionAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentCausedbyConstraint__Group__0__Impl"


    // $ANTLR start "rule__ComponentCausedbyConstraint__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1722:1: rule__ComponentCausedbyConstraint__Group__1 : rule__ComponentCausedbyConstraint__Group__1__Impl rule__ComponentCausedbyConstraint__Group__2 ;
    public final void rule__ComponentCausedbyConstraint__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1726:1: ( rule__ComponentCausedbyConstraint__Group__1__Impl rule__ComponentCausedbyConstraint__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1727:2: rule__ComponentCausedbyConstraint__Group__1__Impl rule__ComponentCausedbyConstraint__Group__2
            {
            pushFollow(FOLLOW_rule__ComponentCausedbyConstraint__Group__1__Impl_in_rule__ComponentCausedbyConstraint__Group__13530);
            rule__ComponentCausedbyConstraint__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentCausedbyConstraint__Group__2_in_rule__ComponentCausedbyConstraint__Group__13533);
            rule__ComponentCausedbyConstraint__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentCausedbyConstraint__Group__1"


    // $ANTLR start "rule__ComponentCausedbyConstraint__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1734:1: rule__ComponentCausedbyConstraint__Group__1__Impl : ( 'causedby' ) ;
    public final void rule__ComponentCausedbyConstraint__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1738:1: ( ( 'causedby' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1739:1: ( 'causedby' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1739:1: ( 'causedby' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1740:1: 'causedby'
            {
             before(grammarAccess.getComponentCausedbyConstraintAccess().getCausedbyKeyword_1()); 
            match(input,22,FOLLOW_22_in_rule__ComponentCausedbyConstraint__Group__1__Impl3561); 
             after(grammarAccess.getComponentCausedbyConstraintAccess().getCausedbyKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentCausedbyConstraint__Group__1__Impl"


    // $ANTLR start "rule__ComponentCausedbyConstraint__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1753:1: rule__ComponentCausedbyConstraint__Group__2 : rule__ComponentCausedbyConstraint__Group__2__Impl ;
    public final void rule__ComponentCausedbyConstraint__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1757:1: ( rule__ComponentCausedbyConstraint__Group__2__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1758:2: rule__ComponentCausedbyConstraint__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__ComponentCausedbyConstraint__Group__2__Impl_in_rule__ComponentCausedbyConstraint__Group__23592);
            rule__ComponentCausedbyConstraint__Group__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentCausedbyConstraint__Group__2"


    // $ANTLR start "rule__ComponentCausedbyConstraint__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1764:1: rule__ComponentCausedbyConstraint__Group__2__Impl : ( ( rule__ComponentCausedbyConstraint__RightActionAssignment_2 ) ) ;
    public final void rule__ComponentCausedbyConstraint__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1768:1: ( ( ( rule__ComponentCausedbyConstraint__RightActionAssignment_2 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1769:1: ( ( rule__ComponentCausedbyConstraint__RightActionAssignment_2 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1769:1: ( ( rule__ComponentCausedbyConstraint__RightActionAssignment_2 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1770:1: ( rule__ComponentCausedbyConstraint__RightActionAssignment_2 )
            {
             before(grammarAccess.getComponentCausedbyConstraintAccess().getRightActionAssignment_2()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1771:1: ( rule__ComponentCausedbyConstraint__RightActionAssignment_2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1771:2: rule__ComponentCausedbyConstraint__RightActionAssignment_2
            {
            pushFollow(FOLLOW_rule__ComponentCausedbyConstraint__RightActionAssignment_2_in_rule__ComponentCausedbyConstraint__Group__2__Impl3619);
            rule__ComponentCausedbyConstraint__RightActionAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getComponentCausedbyConstraintAccess().getRightActionAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentCausedbyConstraint__Group__2__Impl"


    // $ANTLR start "rule__ComponentPrecedesConstraint__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1787:1: rule__ComponentPrecedesConstraint__Group__0 : rule__ComponentPrecedesConstraint__Group__0__Impl rule__ComponentPrecedesConstraint__Group__1 ;
    public final void rule__ComponentPrecedesConstraint__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1791:1: ( rule__ComponentPrecedesConstraint__Group__0__Impl rule__ComponentPrecedesConstraint__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1792:2: rule__ComponentPrecedesConstraint__Group__0__Impl rule__ComponentPrecedesConstraint__Group__1
            {
            pushFollow(FOLLOW_rule__ComponentPrecedesConstraint__Group__0__Impl_in_rule__ComponentPrecedesConstraint__Group__03655);
            rule__ComponentPrecedesConstraint__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentPrecedesConstraint__Group__1_in_rule__ComponentPrecedesConstraint__Group__03658);
            rule__ComponentPrecedesConstraint__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentPrecedesConstraint__Group__0"


    // $ANTLR start "rule__ComponentPrecedesConstraint__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1799:1: rule__ComponentPrecedesConstraint__Group__0__Impl : ( ( rule__ComponentPrecedesConstraint__LeftActionAssignment_0 ) ) ;
    public final void rule__ComponentPrecedesConstraint__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1803:1: ( ( ( rule__ComponentPrecedesConstraint__LeftActionAssignment_0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1804:1: ( ( rule__ComponentPrecedesConstraint__LeftActionAssignment_0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1804:1: ( ( rule__ComponentPrecedesConstraint__LeftActionAssignment_0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1805:1: ( rule__ComponentPrecedesConstraint__LeftActionAssignment_0 )
            {
             before(grammarAccess.getComponentPrecedesConstraintAccess().getLeftActionAssignment_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1806:1: ( rule__ComponentPrecedesConstraint__LeftActionAssignment_0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1806:2: rule__ComponentPrecedesConstraint__LeftActionAssignment_0
            {
            pushFollow(FOLLOW_rule__ComponentPrecedesConstraint__LeftActionAssignment_0_in_rule__ComponentPrecedesConstraint__Group__0__Impl3685);
            rule__ComponentPrecedesConstraint__LeftActionAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getComponentPrecedesConstraintAccess().getLeftActionAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentPrecedesConstraint__Group__0__Impl"


    // $ANTLR start "rule__ComponentPrecedesConstraint__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1816:1: rule__ComponentPrecedesConstraint__Group__1 : rule__ComponentPrecedesConstraint__Group__1__Impl rule__ComponentPrecedesConstraint__Group__2 ;
    public final void rule__ComponentPrecedesConstraint__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1820:1: ( rule__ComponentPrecedesConstraint__Group__1__Impl rule__ComponentPrecedesConstraint__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1821:2: rule__ComponentPrecedesConstraint__Group__1__Impl rule__ComponentPrecedesConstraint__Group__2
            {
            pushFollow(FOLLOW_rule__ComponentPrecedesConstraint__Group__1__Impl_in_rule__ComponentPrecedesConstraint__Group__13715);
            rule__ComponentPrecedesConstraint__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentPrecedesConstraint__Group__2_in_rule__ComponentPrecedesConstraint__Group__13718);
            rule__ComponentPrecedesConstraint__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentPrecedesConstraint__Group__1"


    // $ANTLR start "rule__ComponentPrecedesConstraint__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1828:1: rule__ComponentPrecedesConstraint__Group__1__Impl : ( 'precedes' ) ;
    public final void rule__ComponentPrecedesConstraint__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1832:1: ( ( 'precedes' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1833:1: ( 'precedes' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1833:1: ( 'precedes' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1834:1: 'precedes'
            {
             before(grammarAccess.getComponentPrecedesConstraintAccess().getPrecedesKeyword_1()); 
            match(input,23,FOLLOW_23_in_rule__ComponentPrecedesConstraint__Group__1__Impl3746); 
             after(grammarAccess.getComponentPrecedesConstraintAccess().getPrecedesKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentPrecedesConstraint__Group__1__Impl"


    // $ANTLR start "rule__ComponentPrecedesConstraint__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1847:1: rule__ComponentPrecedesConstraint__Group__2 : rule__ComponentPrecedesConstraint__Group__2__Impl ;
    public final void rule__ComponentPrecedesConstraint__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1851:1: ( rule__ComponentPrecedesConstraint__Group__2__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1852:2: rule__ComponentPrecedesConstraint__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__ComponentPrecedesConstraint__Group__2__Impl_in_rule__ComponentPrecedesConstraint__Group__23777);
            rule__ComponentPrecedesConstraint__Group__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentPrecedesConstraint__Group__2"


    // $ANTLR start "rule__ComponentPrecedesConstraint__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1858:1: rule__ComponentPrecedesConstraint__Group__2__Impl : ( ( rule__ComponentPrecedesConstraint__RightActionAssignment_2 ) ) ;
    public final void rule__ComponentPrecedesConstraint__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1862:1: ( ( ( rule__ComponentPrecedesConstraint__RightActionAssignment_2 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1863:1: ( ( rule__ComponentPrecedesConstraint__RightActionAssignment_2 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1863:1: ( ( rule__ComponentPrecedesConstraint__RightActionAssignment_2 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1864:1: ( rule__ComponentPrecedesConstraint__RightActionAssignment_2 )
            {
             before(grammarAccess.getComponentPrecedesConstraintAccess().getRightActionAssignment_2()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1865:1: ( rule__ComponentPrecedesConstraint__RightActionAssignment_2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1865:2: rule__ComponentPrecedesConstraint__RightActionAssignment_2
            {
            pushFollow(FOLLOW_rule__ComponentPrecedesConstraint__RightActionAssignment_2_in_rule__ComponentPrecedesConstraint__Group__2__Impl3804);
            rule__ComponentPrecedesConstraint__RightActionAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getComponentPrecedesConstraintAccess().getRightActionAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentPrecedesConstraint__Group__2__Impl"


    // $ANTLR start "rule__ComponentFollowsConstraint__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1881:1: rule__ComponentFollowsConstraint__Group__0 : rule__ComponentFollowsConstraint__Group__0__Impl rule__ComponentFollowsConstraint__Group__1 ;
    public final void rule__ComponentFollowsConstraint__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1885:1: ( rule__ComponentFollowsConstraint__Group__0__Impl rule__ComponentFollowsConstraint__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1886:2: rule__ComponentFollowsConstraint__Group__0__Impl rule__ComponentFollowsConstraint__Group__1
            {
            pushFollow(FOLLOW_rule__ComponentFollowsConstraint__Group__0__Impl_in_rule__ComponentFollowsConstraint__Group__03840);
            rule__ComponentFollowsConstraint__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentFollowsConstraint__Group__1_in_rule__ComponentFollowsConstraint__Group__03843);
            rule__ComponentFollowsConstraint__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentFollowsConstraint__Group__0"


    // $ANTLR start "rule__ComponentFollowsConstraint__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1893:1: rule__ComponentFollowsConstraint__Group__0__Impl : ( ( rule__ComponentFollowsConstraint__LeftActionAssignment_0 ) ) ;
    public final void rule__ComponentFollowsConstraint__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1897:1: ( ( ( rule__ComponentFollowsConstraint__LeftActionAssignment_0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1898:1: ( ( rule__ComponentFollowsConstraint__LeftActionAssignment_0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1898:1: ( ( rule__ComponentFollowsConstraint__LeftActionAssignment_0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1899:1: ( rule__ComponentFollowsConstraint__LeftActionAssignment_0 )
            {
             before(grammarAccess.getComponentFollowsConstraintAccess().getLeftActionAssignment_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1900:1: ( rule__ComponentFollowsConstraint__LeftActionAssignment_0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1900:2: rule__ComponentFollowsConstraint__LeftActionAssignment_0
            {
            pushFollow(FOLLOW_rule__ComponentFollowsConstraint__LeftActionAssignment_0_in_rule__ComponentFollowsConstraint__Group__0__Impl3870);
            rule__ComponentFollowsConstraint__LeftActionAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getComponentFollowsConstraintAccess().getLeftActionAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentFollowsConstraint__Group__0__Impl"


    // $ANTLR start "rule__ComponentFollowsConstraint__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1910:1: rule__ComponentFollowsConstraint__Group__1 : rule__ComponentFollowsConstraint__Group__1__Impl rule__ComponentFollowsConstraint__Group__2 ;
    public final void rule__ComponentFollowsConstraint__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1914:1: ( rule__ComponentFollowsConstraint__Group__1__Impl rule__ComponentFollowsConstraint__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1915:2: rule__ComponentFollowsConstraint__Group__1__Impl rule__ComponentFollowsConstraint__Group__2
            {
            pushFollow(FOLLOW_rule__ComponentFollowsConstraint__Group__1__Impl_in_rule__ComponentFollowsConstraint__Group__13900);
            rule__ComponentFollowsConstraint__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentFollowsConstraint__Group__2_in_rule__ComponentFollowsConstraint__Group__13903);
            rule__ComponentFollowsConstraint__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentFollowsConstraint__Group__1"


    // $ANTLR start "rule__ComponentFollowsConstraint__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1922:1: rule__ComponentFollowsConstraint__Group__1__Impl : ( 'follows' ) ;
    public final void rule__ComponentFollowsConstraint__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1926:1: ( ( 'follows' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1927:1: ( 'follows' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1927:1: ( 'follows' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1928:1: 'follows'
            {
             before(grammarAccess.getComponentFollowsConstraintAccess().getFollowsKeyword_1()); 
            match(input,24,FOLLOW_24_in_rule__ComponentFollowsConstraint__Group__1__Impl3931); 
             after(grammarAccess.getComponentFollowsConstraintAccess().getFollowsKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentFollowsConstraint__Group__1__Impl"


    // $ANTLR start "rule__ComponentFollowsConstraint__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1941:1: rule__ComponentFollowsConstraint__Group__2 : rule__ComponentFollowsConstraint__Group__2__Impl ;
    public final void rule__ComponentFollowsConstraint__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1945:1: ( rule__ComponentFollowsConstraint__Group__2__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1946:2: rule__ComponentFollowsConstraint__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__ComponentFollowsConstraint__Group__2__Impl_in_rule__ComponentFollowsConstraint__Group__23962);
            rule__ComponentFollowsConstraint__Group__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentFollowsConstraint__Group__2"


    // $ANTLR start "rule__ComponentFollowsConstraint__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1952:1: rule__ComponentFollowsConstraint__Group__2__Impl : ( ( rule__ComponentFollowsConstraint__RightActionAssignment_2 ) ) ;
    public final void rule__ComponentFollowsConstraint__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1956:1: ( ( ( rule__ComponentFollowsConstraint__RightActionAssignment_2 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1957:1: ( ( rule__ComponentFollowsConstraint__RightActionAssignment_2 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1957:1: ( ( rule__ComponentFollowsConstraint__RightActionAssignment_2 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1958:1: ( rule__ComponentFollowsConstraint__RightActionAssignment_2 )
            {
             before(grammarAccess.getComponentFollowsConstraintAccess().getRightActionAssignment_2()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1959:1: ( rule__ComponentFollowsConstraint__RightActionAssignment_2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1959:2: rule__ComponentFollowsConstraint__RightActionAssignment_2
            {
            pushFollow(FOLLOW_rule__ComponentFollowsConstraint__RightActionAssignment_2_in_rule__ComponentFollowsConstraint__Group__2__Impl3989);
            rule__ComponentFollowsConstraint__RightActionAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getComponentFollowsConstraintAccess().getRightActionAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentFollowsConstraint__Group__2__Impl"


    // $ANTLR start "rule__ComponentActionStatement__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1975:1: rule__ComponentActionStatement__Group__0 : rule__ComponentActionStatement__Group__0__Impl rule__ComponentActionStatement__Group__1 ;
    public final void rule__ComponentActionStatement__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1979:1: ( rule__ComponentActionStatement__Group__0__Impl rule__ComponentActionStatement__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1980:2: rule__ComponentActionStatement__Group__0__Impl rule__ComponentActionStatement__Group__1
            {
            pushFollow(FOLLOW_rule__ComponentActionStatement__Group__0__Impl_in_rule__ComponentActionStatement__Group__04025);
            rule__ComponentActionStatement__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentActionStatement__Group__1_in_rule__ComponentActionStatement__Group__04028);
            rule__ComponentActionStatement__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentActionStatement__Group__0"


    // $ANTLR start "rule__ComponentActionStatement__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1987:1: rule__ComponentActionStatement__Group__0__Impl : ( ( rule__ComponentActionStatement__ContractAssignment_0 ) ) ;
    public final void rule__ComponentActionStatement__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1991:1: ( ( ( rule__ComponentActionStatement__ContractAssignment_0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1992:1: ( ( rule__ComponentActionStatement__ContractAssignment_0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1992:1: ( ( rule__ComponentActionStatement__ContractAssignment_0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1993:1: ( rule__ComponentActionStatement__ContractAssignment_0 )
            {
             before(grammarAccess.getComponentActionStatementAccess().getContractAssignment_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1994:1: ( rule__ComponentActionStatement__ContractAssignment_0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:1994:2: rule__ComponentActionStatement__ContractAssignment_0
            {
            pushFollow(FOLLOW_rule__ComponentActionStatement__ContractAssignment_0_in_rule__ComponentActionStatement__Group__0__Impl4055);
            rule__ComponentActionStatement__ContractAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getComponentActionStatementAccess().getContractAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentActionStatement__Group__0__Impl"


    // $ANTLR start "rule__ComponentActionStatement__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2004:1: rule__ComponentActionStatement__Group__1 : rule__ComponentActionStatement__Group__1__Impl rule__ComponentActionStatement__Group__2 ;
    public final void rule__ComponentActionStatement__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2008:1: ( rule__ComponentActionStatement__Group__1__Impl rule__ComponentActionStatement__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2009:2: rule__ComponentActionStatement__Group__1__Impl rule__ComponentActionStatement__Group__2
            {
            pushFollow(FOLLOW_rule__ComponentActionStatement__Group__1__Impl_in_rule__ComponentActionStatement__Group__14085);
            rule__ComponentActionStatement__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentActionStatement__Group__2_in_rule__ComponentActionStatement__Group__14088);
            rule__ComponentActionStatement__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentActionStatement__Group__1"


    // $ANTLR start "rule__ComponentActionStatement__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2016:1: rule__ComponentActionStatement__Group__1__Impl : ( '::' ) ;
    public final void rule__ComponentActionStatement__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2020:1: ( ( '::' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2021:1: ( '::' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2021:1: ( '::' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2022:1: '::'
            {
             before(grammarAccess.getComponentActionStatementAccess().getColonColonKeyword_1()); 
            match(input,25,FOLLOW_25_in_rule__ComponentActionStatement__Group__1__Impl4116); 
             after(grammarAccess.getComponentActionStatementAccess().getColonColonKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentActionStatement__Group__1__Impl"


    // $ANTLR start "rule__ComponentActionStatement__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2035:1: rule__ComponentActionStatement__Group__2 : rule__ComponentActionStatement__Group__2__Impl ;
    public final void rule__ComponentActionStatement__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2039:1: ( rule__ComponentActionStatement__Group__2__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2040:2: rule__ComponentActionStatement__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__ComponentActionStatement__Group__2__Impl_in_rule__ComponentActionStatement__Group__24147);
            rule__ComponentActionStatement__Group__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentActionStatement__Group__2"


    // $ANTLR start "rule__ComponentActionStatement__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2046:1: rule__ComponentActionStatement__Group__2__Impl : ( ( rule__ComponentActionStatement__ActionAssignment_2 ) ) ;
    public final void rule__ComponentActionStatement__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2050:1: ( ( ( rule__ComponentActionStatement__ActionAssignment_2 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2051:1: ( ( rule__ComponentActionStatement__ActionAssignment_2 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2051:1: ( ( rule__ComponentActionStatement__ActionAssignment_2 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2052:1: ( rule__ComponentActionStatement__ActionAssignment_2 )
            {
             before(grammarAccess.getComponentActionStatementAccess().getActionAssignment_2()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2053:1: ( rule__ComponentActionStatement__ActionAssignment_2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2053:2: rule__ComponentActionStatement__ActionAssignment_2
            {
            pushFollow(FOLLOW_rule__ComponentActionStatement__ActionAssignment_2_in_rule__ComponentActionStatement__Group__2__Impl4174);
            rule__ComponentActionStatement__ActionAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getComponentActionStatementAccess().getActionAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentActionStatement__Group__2__Impl"


    // $ANTLR start "rule__BindComponents__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2069:1: rule__BindComponents__Group__0 : rule__BindComponents__Group__0__Impl rule__BindComponents__Group__1 ;
    public final void rule__BindComponents__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2073:1: ( rule__BindComponents__Group__0__Impl rule__BindComponents__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2074:2: rule__BindComponents__Group__0__Impl rule__BindComponents__Group__1
            {
            pushFollow(FOLLOW_rule__BindComponents__Group__0__Impl_in_rule__BindComponents__Group__04210);
            rule__BindComponents__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__BindComponents__Group__1_in_rule__BindComponents__Group__04213);
            rule__BindComponents__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__0"


    // $ANTLR start "rule__BindComponents__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2081:1: rule__BindComponents__Group__0__Impl : ( 'bind' ) ;
    public final void rule__BindComponents__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2085:1: ( ( 'bind' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2086:1: ( 'bind' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2086:1: ( 'bind' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2087:1: 'bind'
            {
             before(grammarAccess.getBindComponentsAccess().getBindKeyword_0()); 
            match(input,26,FOLLOW_26_in_rule__BindComponents__Group__0__Impl4241); 
             after(grammarAccess.getBindComponentsAccess().getBindKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__0__Impl"


    // $ANTLR start "rule__BindComponents__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2100:1: rule__BindComponents__Group__1 : rule__BindComponents__Group__1__Impl rule__BindComponents__Group__2 ;
    public final void rule__BindComponents__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2104:1: ( rule__BindComponents__Group__1__Impl rule__BindComponents__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2105:2: rule__BindComponents__Group__1__Impl rule__BindComponents__Group__2
            {
            pushFollow(FOLLOW_rule__BindComponents__Group__1__Impl_in_rule__BindComponents__Group__14272);
            rule__BindComponents__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__BindComponents__Group__2_in_rule__BindComponents__Group__14275);
            rule__BindComponents__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__1"


    // $ANTLR start "rule__BindComponents__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2112:1: rule__BindComponents__Group__1__Impl : ( ( rule__BindComponents__LeftComponentAssignment_1 ) ) ;
    public final void rule__BindComponents__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2116:1: ( ( ( rule__BindComponents__LeftComponentAssignment_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2117:1: ( ( rule__BindComponents__LeftComponentAssignment_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2117:1: ( ( rule__BindComponents__LeftComponentAssignment_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2118:1: ( rule__BindComponents__LeftComponentAssignment_1 )
            {
             before(grammarAccess.getBindComponentsAccess().getLeftComponentAssignment_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2119:1: ( rule__BindComponents__LeftComponentAssignment_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2119:2: rule__BindComponents__LeftComponentAssignment_1
            {
            pushFollow(FOLLOW_rule__BindComponents__LeftComponentAssignment_1_in_rule__BindComponents__Group__1__Impl4302);
            rule__BindComponents__LeftComponentAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getBindComponentsAccess().getLeftComponentAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__1__Impl"


    // $ANTLR start "rule__BindComponents__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2129:1: rule__BindComponents__Group__2 : rule__BindComponents__Group__2__Impl rule__BindComponents__Group__3 ;
    public final void rule__BindComponents__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2133:1: ( rule__BindComponents__Group__2__Impl rule__BindComponents__Group__3 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2134:2: rule__BindComponents__Group__2__Impl rule__BindComponents__Group__3
            {
            pushFollow(FOLLOW_rule__BindComponents__Group__2__Impl_in_rule__BindComponents__Group__24332);
            rule__BindComponents__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__BindComponents__Group__3_in_rule__BindComponents__Group__24335);
            rule__BindComponents__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__2"


    // $ANTLR start "rule__BindComponents__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2141:1: rule__BindComponents__Group__2__Impl : ( '::' ) ;
    public final void rule__BindComponents__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2145:1: ( ( '::' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2146:1: ( '::' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2146:1: ( '::' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2147:1: '::'
            {
             before(grammarAccess.getBindComponentsAccess().getColonColonKeyword_2()); 
            match(input,25,FOLLOW_25_in_rule__BindComponents__Group__2__Impl4363); 
             after(grammarAccess.getBindComponentsAccess().getColonColonKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__2__Impl"


    // $ANTLR start "rule__BindComponents__Group__3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2160:1: rule__BindComponents__Group__3 : rule__BindComponents__Group__3__Impl rule__BindComponents__Group__4 ;
    public final void rule__BindComponents__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2164:1: ( rule__BindComponents__Group__3__Impl rule__BindComponents__Group__4 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2165:2: rule__BindComponents__Group__3__Impl rule__BindComponents__Group__4
            {
            pushFollow(FOLLOW_rule__BindComponents__Group__3__Impl_in_rule__BindComponents__Group__34394);
            rule__BindComponents__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__BindComponents__Group__4_in_rule__BindComponents__Group__34397);
            rule__BindComponents__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__3"


    // $ANTLR start "rule__BindComponents__Group__3__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2172:1: rule__BindComponents__Group__3__Impl : ( ( rule__BindComponents__LeftContractAssignment_3 ) ) ;
    public final void rule__BindComponents__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2176:1: ( ( ( rule__BindComponents__LeftContractAssignment_3 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2177:1: ( ( rule__BindComponents__LeftContractAssignment_3 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2177:1: ( ( rule__BindComponents__LeftContractAssignment_3 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2178:1: ( rule__BindComponents__LeftContractAssignment_3 )
            {
             before(grammarAccess.getBindComponentsAccess().getLeftContractAssignment_3()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2179:1: ( rule__BindComponents__LeftContractAssignment_3 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2179:2: rule__BindComponents__LeftContractAssignment_3
            {
            pushFollow(FOLLOW_rule__BindComponents__LeftContractAssignment_3_in_rule__BindComponents__Group__3__Impl4424);
            rule__BindComponents__LeftContractAssignment_3();

            state._fsp--;


            }

             after(grammarAccess.getBindComponentsAccess().getLeftContractAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__3__Impl"


    // $ANTLR start "rule__BindComponents__Group__4"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2189:1: rule__BindComponents__Group__4 : rule__BindComponents__Group__4__Impl rule__BindComponents__Group__5 ;
    public final void rule__BindComponents__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2193:1: ( rule__BindComponents__Group__4__Impl rule__BindComponents__Group__5 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2194:2: rule__BindComponents__Group__4__Impl rule__BindComponents__Group__5
            {
            pushFollow(FOLLOW_rule__BindComponents__Group__4__Impl_in_rule__BindComponents__Group__44454);
            rule__BindComponents__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__BindComponents__Group__5_in_rule__BindComponents__Group__44457);
            rule__BindComponents__Group__5();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__4"


    // $ANTLR start "rule__BindComponents__Group__4__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2201:1: rule__BindComponents__Group__4__Impl : ( 'to' ) ;
    public final void rule__BindComponents__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2205:1: ( ( 'to' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2206:1: ( 'to' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2206:1: ( 'to' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2207:1: 'to'
            {
             before(grammarAccess.getBindComponentsAccess().getToKeyword_4()); 
            match(input,27,FOLLOW_27_in_rule__BindComponents__Group__4__Impl4485); 
             after(grammarAccess.getBindComponentsAccess().getToKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__4__Impl"


    // $ANTLR start "rule__BindComponents__Group__5"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2220:1: rule__BindComponents__Group__5 : rule__BindComponents__Group__5__Impl rule__BindComponents__Group__6 ;
    public final void rule__BindComponents__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2224:1: ( rule__BindComponents__Group__5__Impl rule__BindComponents__Group__6 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2225:2: rule__BindComponents__Group__5__Impl rule__BindComponents__Group__6
            {
            pushFollow(FOLLOW_rule__BindComponents__Group__5__Impl_in_rule__BindComponents__Group__54516);
            rule__BindComponents__Group__5__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__BindComponents__Group__6_in_rule__BindComponents__Group__54519);
            rule__BindComponents__Group__6();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__5"


    // $ANTLR start "rule__BindComponents__Group__5__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2232:1: rule__BindComponents__Group__5__Impl : ( ( rule__BindComponents__RightComponentAssignment_5 ) ) ;
    public final void rule__BindComponents__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2236:1: ( ( ( rule__BindComponents__RightComponentAssignment_5 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2237:1: ( ( rule__BindComponents__RightComponentAssignment_5 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2237:1: ( ( rule__BindComponents__RightComponentAssignment_5 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2238:1: ( rule__BindComponents__RightComponentAssignment_5 )
            {
             before(grammarAccess.getBindComponentsAccess().getRightComponentAssignment_5()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2239:1: ( rule__BindComponents__RightComponentAssignment_5 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2239:2: rule__BindComponents__RightComponentAssignment_5
            {
            pushFollow(FOLLOW_rule__BindComponents__RightComponentAssignment_5_in_rule__BindComponents__Group__5__Impl4546);
            rule__BindComponents__RightComponentAssignment_5();

            state._fsp--;


            }

             after(grammarAccess.getBindComponentsAccess().getRightComponentAssignment_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__5__Impl"


    // $ANTLR start "rule__BindComponents__Group__6"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2249:1: rule__BindComponents__Group__6 : rule__BindComponents__Group__6__Impl rule__BindComponents__Group__7 ;
    public final void rule__BindComponents__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2253:1: ( rule__BindComponents__Group__6__Impl rule__BindComponents__Group__7 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2254:2: rule__BindComponents__Group__6__Impl rule__BindComponents__Group__7
            {
            pushFollow(FOLLOW_rule__BindComponents__Group__6__Impl_in_rule__BindComponents__Group__64576);
            rule__BindComponents__Group__6__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__BindComponents__Group__7_in_rule__BindComponents__Group__64579);
            rule__BindComponents__Group__7();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__6"


    // $ANTLR start "rule__BindComponents__Group__6__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2261:1: rule__BindComponents__Group__6__Impl : ( '::' ) ;
    public final void rule__BindComponents__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2265:1: ( ( '::' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2266:1: ( '::' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2266:1: ( '::' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2267:1: '::'
            {
             before(grammarAccess.getBindComponentsAccess().getColonColonKeyword_6()); 
            match(input,25,FOLLOW_25_in_rule__BindComponents__Group__6__Impl4607); 
             after(grammarAccess.getBindComponentsAccess().getColonColonKeyword_6()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__6__Impl"


    // $ANTLR start "rule__BindComponents__Group__7"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2280:1: rule__BindComponents__Group__7 : rule__BindComponents__Group__7__Impl ;
    public final void rule__BindComponents__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2284:1: ( rule__BindComponents__Group__7__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2285:2: rule__BindComponents__Group__7__Impl
            {
            pushFollow(FOLLOW_rule__BindComponents__Group__7__Impl_in_rule__BindComponents__Group__74638);
            rule__BindComponents__Group__7__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__7"


    // $ANTLR start "rule__BindComponents__Group__7__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2291:1: rule__BindComponents__Group__7__Impl : ( ( rule__BindComponents__RightContractAssignment_7 ) ) ;
    public final void rule__BindComponents__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2295:1: ( ( ( rule__BindComponents__RightContractAssignment_7 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2296:1: ( ( rule__BindComponents__RightContractAssignment_7 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2296:1: ( ( rule__BindComponents__RightContractAssignment_7 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2297:1: ( rule__BindComponents__RightContractAssignment_7 )
            {
             before(grammarAccess.getBindComponentsAccess().getRightContractAssignment_7()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2298:1: ( rule__BindComponents__RightContractAssignment_7 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2298:2: rule__BindComponents__RightContractAssignment_7
            {
            pushFollow(FOLLOW_rule__BindComponents__RightContractAssignment_7_in_rule__BindComponents__Group__7__Impl4665);
            rule__BindComponents__RightContractAssignment_7();

            state._fsp--;


            }

             after(grammarAccess.getBindComponentsAccess().getRightContractAssignment_7()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__Group__7__Impl"


    // $ANTLR start "rule__ComponentInstance__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2324:1: rule__ComponentInstance__Group__0 : rule__ComponentInstance__Group__0__Impl rule__ComponentInstance__Group__1 ;
    public final void rule__ComponentInstance__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2328:1: ( rule__ComponentInstance__Group__0__Impl rule__ComponentInstance__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2329:2: rule__ComponentInstance__Group__0__Impl rule__ComponentInstance__Group__1
            {
            pushFollow(FOLLOW_rule__ComponentInstance__Group__0__Impl_in_rule__ComponentInstance__Group__04711);
            rule__ComponentInstance__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentInstance__Group__1_in_rule__ComponentInstance__Group__04714);
            rule__ComponentInstance__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentInstance__Group__0"


    // $ANTLR start "rule__ComponentInstance__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2336:1: rule__ComponentInstance__Group__0__Impl : ( ( rule__ComponentInstance__NameAssignment_0 ) ) ;
    public final void rule__ComponentInstance__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2340:1: ( ( ( rule__ComponentInstance__NameAssignment_0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2341:1: ( ( rule__ComponentInstance__NameAssignment_0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2341:1: ( ( rule__ComponentInstance__NameAssignment_0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2342:1: ( rule__ComponentInstance__NameAssignment_0 )
            {
             before(grammarAccess.getComponentInstanceAccess().getNameAssignment_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2343:1: ( rule__ComponentInstance__NameAssignment_0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2343:2: rule__ComponentInstance__NameAssignment_0
            {
            pushFollow(FOLLOW_rule__ComponentInstance__NameAssignment_0_in_rule__ComponentInstance__Group__0__Impl4741);
            rule__ComponentInstance__NameAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getComponentInstanceAccess().getNameAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentInstance__Group__0__Impl"


    // $ANTLR start "rule__ComponentInstance__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2353:1: rule__ComponentInstance__Group__1 : rule__ComponentInstance__Group__1__Impl rule__ComponentInstance__Group__2 ;
    public final void rule__ComponentInstance__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2357:1: ( rule__ComponentInstance__Group__1__Impl rule__ComponentInstance__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2358:2: rule__ComponentInstance__Group__1__Impl rule__ComponentInstance__Group__2
            {
            pushFollow(FOLLOW_rule__ComponentInstance__Group__1__Impl_in_rule__ComponentInstance__Group__14771);
            rule__ComponentInstance__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__ComponentInstance__Group__2_in_rule__ComponentInstance__Group__14774);
            rule__ComponentInstance__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentInstance__Group__1"


    // $ANTLR start "rule__ComponentInstance__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2365:1: rule__ComponentInstance__Group__1__Impl : ( 'instanceof' ) ;
    public final void rule__ComponentInstance__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2369:1: ( ( 'instanceof' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2370:1: ( 'instanceof' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2370:1: ( 'instanceof' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2371:1: 'instanceof'
            {
             before(grammarAccess.getComponentInstanceAccess().getInstanceofKeyword_1()); 
            match(input,28,FOLLOW_28_in_rule__ComponentInstance__Group__1__Impl4802); 
             after(grammarAccess.getComponentInstanceAccess().getInstanceofKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentInstance__Group__1__Impl"


    // $ANTLR start "rule__ComponentInstance__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2384:1: rule__ComponentInstance__Group__2 : rule__ComponentInstance__Group__2__Impl ;
    public final void rule__ComponentInstance__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2388:1: ( rule__ComponentInstance__Group__2__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2389:2: rule__ComponentInstance__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__ComponentInstance__Group__2__Impl_in_rule__ComponentInstance__Group__24833);
            rule__ComponentInstance__Group__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentInstance__Group__2"


    // $ANTLR start "rule__ComponentInstance__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2395:1: rule__ComponentInstance__Group__2__Impl : ( ( rule__ComponentInstance__ComponentAssignment_2 ) ) ;
    public final void rule__ComponentInstance__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2399:1: ( ( ( rule__ComponentInstance__ComponentAssignment_2 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2400:1: ( ( rule__ComponentInstance__ComponentAssignment_2 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2400:1: ( ( rule__ComponentInstance__ComponentAssignment_2 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2401:1: ( rule__ComponentInstance__ComponentAssignment_2 )
            {
             before(grammarAccess.getComponentInstanceAccess().getComponentAssignment_2()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2402:1: ( rule__ComponentInstance__ComponentAssignment_2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2402:2: rule__ComponentInstance__ComponentAssignment_2
            {
            pushFollow(FOLLOW_rule__ComponentInstance__ComponentAssignment_2_in_rule__ComponentInstance__Group__2__Impl4860);
            rule__ComponentInstance__ComponentAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getComponentInstanceAccess().getComponentAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentInstance__Group__2__Impl"


    // $ANTLR start "rule__Component__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2418:1: rule__Component__Group__0 : rule__Component__Group__0__Impl rule__Component__Group__1 ;
    public final void rule__Component__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2422:1: ( rule__Component__Group__0__Impl rule__Component__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2423:2: rule__Component__Group__0__Impl rule__Component__Group__1
            {
            pushFollow(FOLLOW_rule__Component__Group__0__Impl_in_rule__Component__Group__04896);
            rule__Component__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Component__Group__1_in_rule__Component__Group__04899);
            rule__Component__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group__0"


    // $ANTLR start "rule__Component__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2430:1: rule__Component__Group__0__Impl : ( 'component' ) ;
    public final void rule__Component__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2434:1: ( ( 'component' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2435:1: ( 'component' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2435:1: ( 'component' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2436:1: 'component'
            {
             before(grammarAccess.getComponentAccess().getComponentKeyword_0()); 
            match(input,29,FOLLOW_29_in_rule__Component__Group__0__Impl4927); 
             after(grammarAccess.getComponentAccess().getComponentKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group__0__Impl"


    // $ANTLR start "rule__Component__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2449:1: rule__Component__Group__1 : rule__Component__Group__1__Impl rule__Component__Group__2 ;
    public final void rule__Component__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2453:1: ( rule__Component__Group__1__Impl rule__Component__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2454:2: rule__Component__Group__1__Impl rule__Component__Group__2
            {
            pushFollow(FOLLOW_rule__Component__Group__1__Impl_in_rule__Component__Group__14958);
            rule__Component__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Component__Group__2_in_rule__Component__Group__14961);
            rule__Component__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group__1"


    // $ANTLR start "rule__Component__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2461:1: rule__Component__Group__1__Impl : ( ( rule__Component__NameAssignment_1 ) ) ;
    public final void rule__Component__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2465:1: ( ( ( rule__Component__NameAssignment_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2466:1: ( ( rule__Component__NameAssignment_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2466:1: ( ( rule__Component__NameAssignment_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2467:1: ( rule__Component__NameAssignment_1 )
            {
             before(grammarAccess.getComponentAccess().getNameAssignment_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2468:1: ( rule__Component__NameAssignment_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2468:2: rule__Component__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Component__NameAssignment_1_in_rule__Component__Group__1__Impl4988);
            rule__Component__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getComponentAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group__1__Impl"


    // $ANTLR start "rule__Component__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2478:1: rule__Component__Group__2 : rule__Component__Group__2__Impl rule__Component__Group__3 ;
    public final void rule__Component__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2482:1: ( rule__Component__Group__2__Impl rule__Component__Group__3 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2483:2: rule__Component__Group__2__Impl rule__Component__Group__3
            {
            pushFollow(FOLLOW_rule__Component__Group__2__Impl_in_rule__Component__Group__25018);
            rule__Component__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Component__Group__3_in_rule__Component__Group__25021);
            rule__Component__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group__2"


    // $ANTLR start "rule__Component__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2490:1: rule__Component__Group__2__Impl : ( '{' ) ;
    public final void rule__Component__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2494:1: ( ( '{' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2495:1: ( '{' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2495:1: ( '{' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2496:1: '{'
            {
             before(grammarAccess.getComponentAccess().getLeftCurlyBracketKeyword_2()); 
            match(input,12,FOLLOW_12_in_rule__Component__Group__2__Impl5049); 
             after(grammarAccess.getComponentAccess().getLeftCurlyBracketKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group__2__Impl"


    // $ANTLR start "rule__Component__Group__3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2509:1: rule__Component__Group__3 : rule__Component__Group__3__Impl rule__Component__Group__4 ;
    public final void rule__Component__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2513:1: ( rule__Component__Group__3__Impl rule__Component__Group__4 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2514:2: rule__Component__Group__3__Impl rule__Component__Group__4
            {
            pushFollow(FOLLOW_rule__Component__Group__3__Impl_in_rule__Component__Group__35080);
            rule__Component__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Component__Group__4_in_rule__Component__Group__35083);
            rule__Component__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group__3"


    // $ANTLR start "rule__Component__Group__3__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2521:1: rule__Component__Group__3__Impl : ( ( rule__Component__Alternatives_3 )* ) ;
    public final void rule__Component__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2525:1: ( ( ( rule__Component__Alternatives_3 )* ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2526:1: ( ( rule__Component__Alternatives_3 )* )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2526:1: ( ( rule__Component__Alternatives_3 )* )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2527:1: ( rule__Component__Alternatives_3 )*
            {
             before(grammarAccess.getComponentAccess().getAlternatives_3()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2528:1: ( rule__Component__Alternatives_3 )*
            loop9:
            do {
                int alt9=2;
                int LA9_0 = input.LA(1);

                if ( ((LA9_0>=30 && LA9_0<=31)) ) {
                    alt9=1;
                }


                switch (alt9) {
            	case 1 :
            	    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2528:2: rule__Component__Alternatives_3
            	    {
            	    pushFollow(FOLLOW_rule__Component__Alternatives_3_in_rule__Component__Group__3__Impl5110);
            	    rule__Component__Alternatives_3();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop9;
                }
            } while (true);

             after(grammarAccess.getComponentAccess().getAlternatives_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group__3__Impl"


    // $ANTLR start "rule__Component__Group__4"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2538:1: rule__Component__Group__4 : rule__Component__Group__4__Impl rule__Component__Group__5 ;
    public final void rule__Component__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2542:1: ( rule__Component__Group__4__Impl rule__Component__Group__5 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2543:2: rule__Component__Group__4__Impl rule__Component__Group__5
            {
            pushFollow(FOLLOW_rule__Component__Group__4__Impl_in_rule__Component__Group__45141);
            rule__Component__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Component__Group__5_in_rule__Component__Group__45144);
            rule__Component__Group__5();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group__4"


    // $ANTLR start "rule__Component__Group__4__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2550:1: rule__Component__Group__4__Impl : ( ( rule__Component__Group_4__0 )? ) ;
    public final void rule__Component__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2554:1: ( ( ( rule__Component__Group_4__0 )? ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2555:1: ( ( rule__Component__Group_4__0 )? )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2555:1: ( ( rule__Component__Group_4__0 )? )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2556:1: ( rule__Component__Group_4__0 )?
            {
             before(grammarAccess.getComponentAccess().getGroup_4()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2557:1: ( rule__Component__Group_4__0 )?
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0==32) ) {
                alt10=1;
            }
            switch (alt10) {
                case 1 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2557:2: rule__Component__Group_4__0
                    {
                    pushFollow(FOLLOW_rule__Component__Group_4__0_in_rule__Component__Group__4__Impl5171);
                    rule__Component__Group_4__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getComponentAccess().getGroup_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group__4__Impl"


    // $ANTLR start "rule__Component__Group__5"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2567:1: rule__Component__Group__5 : rule__Component__Group__5__Impl ;
    public final void rule__Component__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2571:1: ( rule__Component__Group__5__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2572:2: rule__Component__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__Component__Group__5__Impl_in_rule__Component__Group__55202);
            rule__Component__Group__5__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group__5"


    // $ANTLR start "rule__Component__Group__5__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2578:1: rule__Component__Group__5__Impl : ( '}' ) ;
    public final void rule__Component__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2582:1: ( ( '}' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2583:1: ( '}' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2583:1: ( '}' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2584:1: '}'
            {
             before(grammarAccess.getComponentAccess().getRightCurlyBracketKeyword_5()); 
            match(input,13,FOLLOW_13_in_rule__Component__Group__5__Impl5230); 
             after(grammarAccess.getComponentAccess().getRightCurlyBracketKeyword_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group__5__Impl"


    // $ANTLR start "rule__Component__Group_3_0__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2609:1: rule__Component__Group_3_0__0 : rule__Component__Group_3_0__0__Impl rule__Component__Group_3_0__1 ;
    public final void rule__Component__Group_3_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2613:1: ( rule__Component__Group_3_0__0__Impl rule__Component__Group_3_0__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2614:2: rule__Component__Group_3_0__0__Impl rule__Component__Group_3_0__1
            {
            pushFollow(FOLLOW_rule__Component__Group_3_0__0__Impl_in_rule__Component__Group_3_0__05273);
            rule__Component__Group_3_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Component__Group_3_0__1_in_rule__Component__Group_3_0__05276);
            rule__Component__Group_3_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_3_0__0"


    // $ANTLR start "rule__Component__Group_3_0__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2621:1: rule__Component__Group_3_0__0__Impl : ( 'provides' ) ;
    public final void rule__Component__Group_3_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2625:1: ( ( 'provides' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2626:1: ( 'provides' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2626:1: ( 'provides' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2627:1: 'provides'
            {
             before(grammarAccess.getComponentAccess().getProvidesKeyword_3_0_0()); 
            match(input,30,FOLLOW_30_in_rule__Component__Group_3_0__0__Impl5304); 
             after(grammarAccess.getComponentAccess().getProvidesKeyword_3_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_3_0__0__Impl"


    // $ANTLR start "rule__Component__Group_3_0__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2640:1: rule__Component__Group_3_0__1 : rule__Component__Group_3_0__1__Impl ;
    public final void rule__Component__Group_3_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2644:1: ( rule__Component__Group_3_0__1__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2645:2: rule__Component__Group_3_0__1__Impl
            {
            pushFollow(FOLLOW_rule__Component__Group_3_0__1__Impl_in_rule__Component__Group_3_0__15335);
            rule__Component__Group_3_0__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_3_0__1"


    // $ANTLR start "rule__Component__Group_3_0__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2651:1: rule__Component__Group_3_0__1__Impl : ( ( rule__Component__ProvidesAssignment_3_0_1 ) ) ;
    public final void rule__Component__Group_3_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2655:1: ( ( ( rule__Component__ProvidesAssignment_3_0_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2656:1: ( ( rule__Component__ProvidesAssignment_3_0_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2656:1: ( ( rule__Component__ProvidesAssignment_3_0_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2657:1: ( rule__Component__ProvidesAssignment_3_0_1 )
            {
             before(grammarAccess.getComponentAccess().getProvidesAssignment_3_0_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2658:1: ( rule__Component__ProvidesAssignment_3_0_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2658:2: rule__Component__ProvidesAssignment_3_0_1
            {
            pushFollow(FOLLOW_rule__Component__ProvidesAssignment_3_0_1_in_rule__Component__Group_3_0__1__Impl5362);
            rule__Component__ProvidesAssignment_3_0_1();

            state._fsp--;


            }

             after(grammarAccess.getComponentAccess().getProvidesAssignment_3_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_3_0__1__Impl"


    // $ANTLR start "rule__Component__Group_3_1__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2672:1: rule__Component__Group_3_1__0 : rule__Component__Group_3_1__0__Impl rule__Component__Group_3_1__1 ;
    public final void rule__Component__Group_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2676:1: ( rule__Component__Group_3_1__0__Impl rule__Component__Group_3_1__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2677:2: rule__Component__Group_3_1__0__Impl rule__Component__Group_3_1__1
            {
            pushFollow(FOLLOW_rule__Component__Group_3_1__0__Impl_in_rule__Component__Group_3_1__05396);
            rule__Component__Group_3_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Component__Group_3_1__1_in_rule__Component__Group_3_1__05399);
            rule__Component__Group_3_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_3_1__0"


    // $ANTLR start "rule__Component__Group_3_1__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2684:1: rule__Component__Group_3_1__0__Impl : ( 'requires' ) ;
    public final void rule__Component__Group_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2688:1: ( ( 'requires' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2689:1: ( 'requires' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2689:1: ( 'requires' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2690:1: 'requires'
            {
             before(grammarAccess.getComponentAccess().getRequiresKeyword_3_1_0()); 
            match(input,31,FOLLOW_31_in_rule__Component__Group_3_1__0__Impl5427); 
             after(grammarAccess.getComponentAccess().getRequiresKeyword_3_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_3_1__0__Impl"


    // $ANTLR start "rule__Component__Group_3_1__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2703:1: rule__Component__Group_3_1__1 : rule__Component__Group_3_1__1__Impl ;
    public final void rule__Component__Group_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2707:1: ( rule__Component__Group_3_1__1__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2708:2: rule__Component__Group_3_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Component__Group_3_1__1__Impl_in_rule__Component__Group_3_1__15458);
            rule__Component__Group_3_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_3_1__1"


    // $ANTLR start "rule__Component__Group_3_1__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2714:1: rule__Component__Group_3_1__1__Impl : ( ( rule__Component__RequiresAssignment_3_1_1 ) ) ;
    public final void rule__Component__Group_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2718:1: ( ( ( rule__Component__RequiresAssignment_3_1_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2719:1: ( ( rule__Component__RequiresAssignment_3_1_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2719:1: ( ( rule__Component__RequiresAssignment_3_1_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2720:1: ( rule__Component__RequiresAssignment_3_1_1 )
            {
             before(grammarAccess.getComponentAccess().getRequiresAssignment_3_1_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2721:1: ( rule__Component__RequiresAssignment_3_1_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2721:2: rule__Component__RequiresAssignment_3_1_1
            {
            pushFollow(FOLLOW_rule__Component__RequiresAssignment_3_1_1_in_rule__Component__Group_3_1__1__Impl5485);
            rule__Component__RequiresAssignment_3_1_1();

            state._fsp--;


            }

             after(grammarAccess.getComponentAccess().getRequiresAssignment_3_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_3_1__1__Impl"


    // $ANTLR start "rule__Component__Group_4__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2735:1: rule__Component__Group_4__0 : rule__Component__Group_4__0__Impl rule__Component__Group_4__1 ;
    public final void rule__Component__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2739:1: ( rule__Component__Group_4__0__Impl rule__Component__Group_4__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2740:2: rule__Component__Group_4__0__Impl rule__Component__Group_4__1
            {
            pushFollow(FOLLOW_rule__Component__Group_4__0__Impl_in_rule__Component__Group_4__05519);
            rule__Component__Group_4__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Component__Group_4__1_in_rule__Component__Group_4__05522);
            rule__Component__Group_4__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_4__0"


    // $ANTLR start "rule__Component__Group_4__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2747:1: rule__Component__Group_4__0__Impl : ( 'constraints' ) ;
    public final void rule__Component__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2751:1: ( ( 'constraints' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2752:1: ( 'constraints' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2752:1: ( 'constraints' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2753:1: 'constraints'
            {
             before(grammarAccess.getComponentAccess().getConstraintsKeyword_4_0()); 
            match(input,32,FOLLOW_32_in_rule__Component__Group_4__0__Impl5550); 
             after(grammarAccess.getComponentAccess().getConstraintsKeyword_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_4__0__Impl"


    // $ANTLR start "rule__Component__Group_4__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2766:1: rule__Component__Group_4__1 : rule__Component__Group_4__1__Impl rule__Component__Group_4__2 ;
    public final void rule__Component__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2770:1: ( rule__Component__Group_4__1__Impl rule__Component__Group_4__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2771:2: rule__Component__Group_4__1__Impl rule__Component__Group_4__2
            {
            pushFollow(FOLLOW_rule__Component__Group_4__1__Impl_in_rule__Component__Group_4__15581);
            rule__Component__Group_4__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Component__Group_4__2_in_rule__Component__Group_4__15584);
            rule__Component__Group_4__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_4__1"


    // $ANTLR start "rule__Component__Group_4__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2778:1: rule__Component__Group_4__1__Impl : ( '{' ) ;
    public final void rule__Component__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2782:1: ( ( '{' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2783:1: ( '{' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2783:1: ( '{' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2784:1: '{'
            {
             before(grammarAccess.getComponentAccess().getLeftCurlyBracketKeyword_4_1()); 
            match(input,12,FOLLOW_12_in_rule__Component__Group_4__1__Impl5612); 
             after(grammarAccess.getComponentAccess().getLeftCurlyBracketKeyword_4_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_4__1__Impl"


    // $ANTLR start "rule__Component__Group_4__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2797:1: rule__Component__Group_4__2 : rule__Component__Group_4__2__Impl rule__Component__Group_4__3 ;
    public final void rule__Component__Group_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2801:1: ( rule__Component__Group_4__2__Impl rule__Component__Group_4__3 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2802:2: rule__Component__Group_4__2__Impl rule__Component__Group_4__3
            {
            pushFollow(FOLLOW_rule__Component__Group_4__2__Impl_in_rule__Component__Group_4__25643);
            rule__Component__Group_4__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Component__Group_4__3_in_rule__Component__Group_4__25646);
            rule__Component__Group_4__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_4__2"


    // $ANTLR start "rule__Component__Group_4__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2809:1: rule__Component__Group_4__2__Impl : ( ( rule__Component__StatementsAssignment_4_2 )* ) ;
    public final void rule__Component__Group_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2813:1: ( ( ( rule__Component__StatementsAssignment_4_2 )* ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2814:1: ( ( rule__Component__StatementsAssignment_4_2 )* )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2814:1: ( ( rule__Component__StatementsAssignment_4_2 )* )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2815:1: ( rule__Component__StatementsAssignment_4_2 )*
            {
             before(grammarAccess.getComponentAccess().getStatementsAssignment_4_2()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2816:1: ( rule__Component__StatementsAssignment_4_2 )*
            loop11:
            do {
                int alt11=2;
                int LA11_0 = input.LA(1);

                if ( (LA11_0==RULE_ID||LA11_0==19) ) {
                    alt11=1;
                }


                switch (alt11) {
            	case 1 :
            	    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2816:2: rule__Component__StatementsAssignment_4_2
            	    {
            	    pushFollow(FOLLOW_rule__Component__StatementsAssignment_4_2_in_rule__Component__Group_4__2__Impl5673);
            	    rule__Component__StatementsAssignment_4_2();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop11;
                }
            } while (true);

             after(grammarAccess.getComponentAccess().getStatementsAssignment_4_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_4__2__Impl"


    // $ANTLR start "rule__Component__Group_4__3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2826:1: rule__Component__Group_4__3 : rule__Component__Group_4__3__Impl ;
    public final void rule__Component__Group_4__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2830:1: ( rule__Component__Group_4__3__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2831:2: rule__Component__Group_4__3__Impl
            {
            pushFollow(FOLLOW_rule__Component__Group_4__3__Impl_in_rule__Component__Group_4__35704);
            rule__Component__Group_4__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_4__3"


    // $ANTLR start "rule__Component__Group_4__3__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2837:1: rule__Component__Group_4__3__Impl : ( '}' ) ;
    public final void rule__Component__Group_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2841:1: ( ( '}' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2842:1: ( '}' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2842:1: ( '}' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2843:1: '}'
            {
             before(grammarAccess.getComponentAccess().getRightCurlyBracketKeyword_4_3()); 
            match(input,13,FOLLOW_13_in_rule__Component__Group_4__3__Impl5732); 
             after(grammarAccess.getComponentAccess().getRightCurlyBracketKeyword_4_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__Group_4__3__Impl"


    // $ANTLR start "rule__Contract__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2864:1: rule__Contract__Group__0 : rule__Contract__Group__0__Impl rule__Contract__Group__1 ;
    public final void rule__Contract__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2868:1: ( rule__Contract__Group__0__Impl rule__Contract__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2869:2: rule__Contract__Group__0__Impl rule__Contract__Group__1
            {
            pushFollow(FOLLOW_rule__Contract__Group__0__Impl_in_rule__Contract__Group__05771);
            rule__Contract__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Contract__Group__1_in_rule__Contract__Group__05774);
            rule__Contract__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Contract__Group__0"


    // $ANTLR start "rule__Contract__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2876:1: rule__Contract__Group__0__Impl : ( ( rule__Contract__NameAssignment_0 ) ) ;
    public final void rule__Contract__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2880:1: ( ( ( rule__Contract__NameAssignment_0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2881:1: ( ( rule__Contract__NameAssignment_0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2881:1: ( ( rule__Contract__NameAssignment_0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2882:1: ( rule__Contract__NameAssignment_0 )
            {
             before(grammarAccess.getContractAccess().getNameAssignment_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2883:1: ( rule__Contract__NameAssignment_0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2883:2: rule__Contract__NameAssignment_0
            {
            pushFollow(FOLLOW_rule__Contract__NameAssignment_0_in_rule__Contract__Group__0__Impl5801);
            rule__Contract__NameAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getContractAccess().getNameAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Contract__Group__0__Impl"


    // $ANTLR start "rule__Contract__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2893:1: rule__Contract__Group__1 : rule__Contract__Group__1__Impl rule__Contract__Group__2 ;
    public final void rule__Contract__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2897:1: ( rule__Contract__Group__1__Impl rule__Contract__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2898:2: rule__Contract__Group__1__Impl rule__Contract__Group__2
            {
            pushFollow(FOLLOW_rule__Contract__Group__1__Impl_in_rule__Contract__Group__15831);
            rule__Contract__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Contract__Group__2_in_rule__Contract__Group__15834);
            rule__Contract__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Contract__Group__1"


    // $ANTLR start "rule__Contract__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2905:1: rule__Contract__Group__1__Impl : ( ':' ) ;
    public final void rule__Contract__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2909:1: ( ( ':' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2910:1: ( ':' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2910:1: ( ':' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2911:1: ':'
            {
             before(grammarAccess.getContractAccess().getColonKeyword_1()); 
            match(input,33,FOLLOW_33_in_rule__Contract__Group__1__Impl5862); 
             after(grammarAccess.getContractAccess().getColonKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Contract__Group__1__Impl"


    // $ANTLR start "rule__Contract__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2924:1: rule__Contract__Group__2 : rule__Contract__Group__2__Impl ;
    public final void rule__Contract__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2928:1: ( rule__Contract__Group__2__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2929:2: rule__Contract__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__Contract__Group__2__Impl_in_rule__Contract__Group__25893);
            rule__Contract__Group__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Contract__Group__2"


    // $ANTLR start "rule__Contract__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2935:1: rule__Contract__Group__2__Impl : ( ( rule__Contract__InterfaceAssignment_2 ) ) ;
    public final void rule__Contract__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2939:1: ( ( ( rule__Contract__InterfaceAssignment_2 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2940:1: ( ( rule__Contract__InterfaceAssignment_2 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2940:1: ( ( rule__Contract__InterfaceAssignment_2 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2941:1: ( rule__Contract__InterfaceAssignment_2 )
            {
             before(grammarAccess.getContractAccess().getInterfaceAssignment_2()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2942:1: ( rule__Contract__InterfaceAssignment_2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2942:2: rule__Contract__InterfaceAssignment_2
            {
            pushFollow(FOLLOW_rule__Contract__InterfaceAssignment_2_in_rule__Contract__Group__2__Impl5920);
            rule__Contract__InterfaceAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getContractAccess().getInterfaceAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Contract__Group__2__Impl"


    // $ANTLR start "rule__Interface__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2958:1: rule__Interface__Group__0 : rule__Interface__Group__0__Impl rule__Interface__Group__1 ;
    public final void rule__Interface__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2962:1: ( rule__Interface__Group__0__Impl rule__Interface__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2963:2: rule__Interface__Group__0__Impl rule__Interface__Group__1
            {
            pushFollow(FOLLOW_rule__Interface__Group__0__Impl_in_rule__Interface__Group__05956);
            rule__Interface__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Interface__Group__1_in_rule__Interface__Group__05959);
            rule__Interface__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__0"


    // $ANTLR start "rule__Interface__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2970:1: rule__Interface__Group__0__Impl : ( 'interface ' ) ;
    public final void rule__Interface__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2974:1: ( ( 'interface ' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2975:1: ( 'interface ' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2975:1: ( 'interface ' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2976:1: 'interface '
            {
             before(grammarAccess.getInterfaceAccess().getInterfaceKeyword_0()); 
            match(input,34,FOLLOW_34_in_rule__Interface__Group__0__Impl5987); 
             after(grammarAccess.getInterfaceAccess().getInterfaceKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__0__Impl"


    // $ANTLR start "rule__Interface__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2989:1: rule__Interface__Group__1 : rule__Interface__Group__1__Impl rule__Interface__Group__2 ;
    public final void rule__Interface__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2993:1: ( rule__Interface__Group__1__Impl rule__Interface__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:2994:2: rule__Interface__Group__1__Impl rule__Interface__Group__2
            {
            pushFollow(FOLLOW_rule__Interface__Group__1__Impl_in_rule__Interface__Group__16018);
            rule__Interface__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Interface__Group__2_in_rule__Interface__Group__16021);
            rule__Interface__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__1"


    // $ANTLR start "rule__Interface__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3001:1: rule__Interface__Group__1__Impl : ( ( rule__Interface__NameAssignment_1 ) ) ;
    public final void rule__Interface__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3005:1: ( ( ( rule__Interface__NameAssignment_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3006:1: ( ( rule__Interface__NameAssignment_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3006:1: ( ( rule__Interface__NameAssignment_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3007:1: ( rule__Interface__NameAssignment_1 )
            {
             before(grammarAccess.getInterfaceAccess().getNameAssignment_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3008:1: ( rule__Interface__NameAssignment_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3008:2: rule__Interface__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Interface__NameAssignment_1_in_rule__Interface__Group__1__Impl6048);
            rule__Interface__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getInterfaceAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__1__Impl"


    // $ANTLR start "rule__Interface__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3018:1: rule__Interface__Group__2 : rule__Interface__Group__2__Impl rule__Interface__Group__3 ;
    public final void rule__Interface__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3022:1: ( rule__Interface__Group__2__Impl rule__Interface__Group__3 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3023:2: rule__Interface__Group__2__Impl rule__Interface__Group__3
            {
            pushFollow(FOLLOW_rule__Interface__Group__2__Impl_in_rule__Interface__Group__26078);
            rule__Interface__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Interface__Group__3_in_rule__Interface__Group__26081);
            rule__Interface__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__2"


    // $ANTLR start "rule__Interface__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3030:1: rule__Interface__Group__2__Impl : ( '{' ) ;
    public final void rule__Interface__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3034:1: ( ( '{' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3035:1: ( '{' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3035:1: ( '{' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3036:1: '{'
            {
             before(grammarAccess.getInterfaceAccess().getLeftCurlyBracketKeyword_2()); 
            match(input,12,FOLLOW_12_in_rule__Interface__Group__2__Impl6109); 
             after(grammarAccess.getInterfaceAccess().getLeftCurlyBracketKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__2__Impl"


    // $ANTLR start "rule__Interface__Group__3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3049:1: rule__Interface__Group__3 : rule__Interface__Group__3__Impl rule__Interface__Group__4 ;
    public final void rule__Interface__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3053:1: ( rule__Interface__Group__3__Impl rule__Interface__Group__4 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3054:2: rule__Interface__Group__3__Impl rule__Interface__Group__4
            {
            pushFollow(FOLLOW_rule__Interface__Group__3__Impl_in_rule__Interface__Group__36140);
            rule__Interface__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Interface__Group__4_in_rule__Interface__Group__36143);
            rule__Interface__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__3"


    // $ANTLR start "rule__Interface__Group__3__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3061:1: rule__Interface__Group__3__Impl : ( ( rule__Interface__ActionsAssignment_3 )* ) ;
    public final void rule__Interface__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3065:1: ( ( ( rule__Interface__ActionsAssignment_3 )* ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3066:1: ( ( rule__Interface__ActionsAssignment_3 )* )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3066:1: ( ( rule__Interface__ActionsAssignment_3 )* )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3067:1: ( rule__Interface__ActionsAssignment_3 )*
            {
             before(grammarAccess.getInterfaceAccess().getActionsAssignment_3()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3068:1: ( rule__Interface__ActionsAssignment_3 )*
            loop12:
            do {
                int alt12=2;
                int LA12_0 = input.LA(1);

                if ( (LA12_0==RULE_ID) ) {
                    alt12=1;
                }


                switch (alt12) {
            	case 1 :
            	    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3068:2: rule__Interface__ActionsAssignment_3
            	    {
            	    pushFollow(FOLLOW_rule__Interface__ActionsAssignment_3_in_rule__Interface__Group__3__Impl6170);
            	    rule__Interface__ActionsAssignment_3();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop12;
                }
            } while (true);

             after(grammarAccess.getInterfaceAccess().getActionsAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__3__Impl"


    // $ANTLR start "rule__Interface__Group__4"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3078:1: rule__Interface__Group__4 : rule__Interface__Group__4__Impl ;
    public final void rule__Interface__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3082:1: ( rule__Interface__Group__4__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3083:2: rule__Interface__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__Interface__Group__4__Impl_in_rule__Interface__Group__46201);
            rule__Interface__Group__4__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__4"


    // $ANTLR start "rule__Interface__Group__4__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3089:1: rule__Interface__Group__4__Impl : ( '}' ) ;
    public final void rule__Interface__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3093:1: ( ( '}' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3094:1: ( '}' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3094:1: ( '}' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3095:1: '}'
            {
             before(grammarAccess.getInterfaceAccess().getRightCurlyBracketKeyword_4()); 
            match(input,13,FOLLOW_13_in_rule__Interface__Group__4__Impl6229); 
             after(grammarAccess.getInterfaceAccess().getRightCurlyBracketKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__Group__4__Impl"


    // $ANTLR start "rule__Action__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3118:1: rule__Action__Group__0 : rule__Action__Group__0__Impl rule__Action__Group__1 ;
    public final void rule__Action__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3122:1: ( rule__Action__Group__0__Impl rule__Action__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3123:2: rule__Action__Group__0__Impl rule__Action__Group__1
            {
            pushFollow(FOLLOW_rule__Action__Group__0__Impl_in_rule__Action__Group__06270);
            rule__Action__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Action__Group__1_in_rule__Action__Group__06273);
            rule__Action__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group__0"


    // $ANTLR start "rule__Action__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3130:1: rule__Action__Group__0__Impl : ( ( rule__Action__ReturnAssignment_0 ) ) ;
    public final void rule__Action__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3134:1: ( ( ( rule__Action__ReturnAssignment_0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3135:1: ( ( rule__Action__ReturnAssignment_0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3135:1: ( ( rule__Action__ReturnAssignment_0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3136:1: ( rule__Action__ReturnAssignment_0 )
            {
             before(grammarAccess.getActionAccess().getReturnAssignment_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3137:1: ( rule__Action__ReturnAssignment_0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3137:2: rule__Action__ReturnAssignment_0
            {
            pushFollow(FOLLOW_rule__Action__ReturnAssignment_0_in_rule__Action__Group__0__Impl6300);
            rule__Action__ReturnAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getActionAccess().getReturnAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group__0__Impl"


    // $ANTLR start "rule__Action__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3147:1: rule__Action__Group__1 : rule__Action__Group__1__Impl rule__Action__Group__2 ;
    public final void rule__Action__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3151:1: ( rule__Action__Group__1__Impl rule__Action__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3152:2: rule__Action__Group__1__Impl rule__Action__Group__2
            {
            pushFollow(FOLLOW_rule__Action__Group__1__Impl_in_rule__Action__Group__16330);
            rule__Action__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Action__Group__2_in_rule__Action__Group__16333);
            rule__Action__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group__1"


    // $ANTLR start "rule__Action__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3159:1: rule__Action__Group__1__Impl : ( ( rule__Action__NameAssignment_1 ) ) ;
    public final void rule__Action__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3163:1: ( ( ( rule__Action__NameAssignment_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3164:1: ( ( rule__Action__NameAssignment_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3164:1: ( ( rule__Action__NameAssignment_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3165:1: ( rule__Action__NameAssignment_1 )
            {
             before(grammarAccess.getActionAccess().getNameAssignment_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3166:1: ( rule__Action__NameAssignment_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3166:2: rule__Action__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Action__NameAssignment_1_in_rule__Action__Group__1__Impl6360);
            rule__Action__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getActionAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group__1__Impl"


    // $ANTLR start "rule__Action__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3176:1: rule__Action__Group__2 : rule__Action__Group__2__Impl rule__Action__Group__3 ;
    public final void rule__Action__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3180:1: ( rule__Action__Group__2__Impl rule__Action__Group__3 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3181:2: rule__Action__Group__2__Impl rule__Action__Group__3
            {
            pushFollow(FOLLOW_rule__Action__Group__2__Impl_in_rule__Action__Group__26390);
            rule__Action__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Action__Group__3_in_rule__Action__Group__26393);
            rule__Action__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group__2"


    // $ANTLR start "rule__Action__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3188:1: rule__Action__Group__2__Impl : ( '(' ) ;
    public final void rule__Action__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3192:1: ( ( '(' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3193:1: ( '(' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3193:1: ( '(' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3194:1: '('
            {
             before(grammarAccess.getActionAccess().getLeftParenthesisKeyword_2()); 
            match(input,35,FOLLOW_35_in_rule__Action__Group__2__Impl6421); 
             after(grammarAccess.getActionAccess().getLeftParenthesisKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group__2__Impl"


    // $ANTLR start "rule__Action__Group__3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3207:1: rule__Action__Group__3 : rule__Action__Group__3__Impl rule__Action__Group__4 ;
    public final void rule__Action__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3211:1: ( rule__Action__Group__3__Impl rule__Action__Group__4 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3212:2: rule__Action__Group__3__Impl rule__Action__Group__4
            {
            pushFollow(FOLLOW_rule__Action__Group__3__Impl_in_rule__Action__Group__36452);
            rule__Action__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Action__Group__4_in_rule__Action__Group__36455);
            rule__Action__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group__3"


    // $ANTLR start "rule__Action__Group__3__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3219:1: rule__Action__Group__3__Impl : ( ( rule__Action__Group_3__0 )? ) ;
    public final void rule__Action__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3223:1: ( ( ( rule__Action__Group_3__0 )? ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3224:1: ( ( rule__Action__Group_3__0 )? )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3224:1: ( ( rule__Action__Group_3__0 )? )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3225:1: ( rule__Action__Group_3__0 )?
            {
             before(grammarAccess.getActionAccess().getGroup_3()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3226:1: ( rule__Action__Group_3__0 )?
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( (LA13_0==RULE_ID) ) {
                alt13=1;
            }
            switch (alt13) {
                case 1 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3226:2: rule__Action__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__Action__Group_3__0_in_rule__Action__Group__3__Impl6482);
                    rule__Action__Group_3__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getActionAccess().getGroup_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group__3__Impl"


    // $ANTLR start "rule__Action__Group__4"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3236:1: rule__Action__Group__4 : rule__Action__Group__4__Impl ;
    public final void rule__Action__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3240:1: ( rule__Action__Group__4__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3241:2: rule__Action__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__Action__Group__4__Impl_in_rule__Action__Group__46513);
            rule__Action__Group__4__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group__4"


    // $ANTLR start "rule__Action__Group__4__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3247:1: rule__Action__Group__4__Impl : ( ')' ) ;
    public final void rule__Action__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3251:1: ( ( ')' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3252:1: ( ')' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3252:1: ( ')' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3253:1: ')'
            {
             before(grammarAccess.getActionAccess().getRightParenthesisKeyword_4()); 
            match(input,36,FOLLOW_36_in_rule__Action__Group__4__Impl6541); 
             after(grammarAccess.getActionAccess().getRightParenthesisKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group__4__Impl"


    // $ANTLR start "rule__Action__Group_3__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3276:1: rule__Action__Group_3__0 : rule__Action__Group_3__0__Impl rule__Action__Group_3__1 ;
    public final void rule__Action__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3280:1: ( rule__Action__Group_3__0__Impl rule__Action__Group_3__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3281:2: rule__Action__Group_3__0__Impl rule__Action__Group_3__1
            {
            pushFollow(FOLLOW_rule__Action__Group_3__0__Impl_in_rule__Action__Group_3__06582);
            rule__Action__Group_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Action__Group_3__1_in_rule__Action__Group_3__06585);
            rule__Action__Group_3__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group_3__0"


    // $ANTLR start "rule__Action__Group_3__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3288:1: rule__Action__Group_3__0__Impl : ( ( rule__Action__ParametersAssignment_3_0 ) ) ;
    public final void rule__Action__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3292:1: ( ( ( rule__Action__ParametersAssignment_3_0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3293:1: ( ( rule__Action__ParametersAssignment_3_0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3293:1: ( ( rule__Action__ParametersAssignment_3_0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3294:1: ( rule__Action__ParametersAssignment_3_0 )
            {
             before(grammarAccess.getActionAccess().getParametersAssignment_3_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3295:1: ( rule__Action__ParametersAssignment_3_0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3295:2: rule__Action__ParametersAssignment_3_0
            {
            pushFollow(FOLLOW_rule__Action__ParametersAssignment_3_0_in_rule__Action__Group_3__0__Impl6612);
            rule__Action__ParametersAssignment_3_0();

            state._fsp--;


            }

             after(grammarAccess.getActionAccess().getParametersAssignment_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group_3__0__Impl"


    // $ANTLR start "rule__Action__Group_3__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3305:1: rule__Action__Group_3__1 : rule__Action__Group_3__1__Impl ;
    public final void rule__Action__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3309:1: ( rule__Action__Group_3__1__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3310:2: rule__Action__Group_3__1__Impl
            {
            pushFollow(FOLLOW_rule__Action__Group_3__1__Impl_in_rule__Action__Group_3__16642);
            rule__Action__Group_3__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group_3__1"


    // $ANTLR start "rule__Action__Group_3__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3316:1: rule__Action__Group_3__1__Impl : ( ( rule__Action__Group_3_1__0 )* ) ;
    public final void rule__Action__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3320:1: ( ( ( rule__Action__Group_3_1__0 )* ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3321:1: ( ( rule__Action__Group_3_1__0 )* )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3321:1: ( ( rule__Action__Group_3_1__0 )* )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3322:1: ( rule__Action__Group_3_1__0 )*
            {
             before(grammarAccess.getActionAccess().getGroup_3_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3323:1: ( rule__Action__Group_3_1__0 )*
            loop14:
            do {
                int alt14=2;
                int LA14_0 = input.LA(1);

                if ( (LA14_0==20) ) {
                    alt14=1;
                }


                switch (alt14) {
            	case 1 :
            	    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3323:2: rule__Action__Group_3_1__0
            	    {
            	    pushFollow(FOLLOW_rule__Action__Group_3_1__0_in_rule__Action__Group_3__1__Impl6669);
            	    rule__Action__Group_3_1__0();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop14;
                }
            } while (true);

             after(grammarAccess.getActionAccess().getGroup_3_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group_3__1__Impl"


    // $ANTLR start "rule__Action__Group_3_1__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3337:1: rule__Action__Group_3_1__0 : rule__Action__Group_3_1__0__Impl rule__Action__Group_3_1__1 ;
    public final void rule__Action__Group_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3341:1: ( rule__Action__Group_3_1__0__Impl rule__Action__Group_3_1__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3342:2: rule__Action__Group_3_1__0__Impl rule__Action__Group_3_1__1
            {
            pushFollow(FOLLOW_rule__Action__Group_3_1__0__Impl_in_rule__Action__Group_3_1__06704);
            rule__Action__Group_3_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Action__Group_3_1__1_in_rule__Action__Group_3_1__06707);
            rule__Action__Group_3_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group_3_1__0"


    // $ANTLR start "rule__Action__Group_3_1__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3349:1: rule__Action__Group_3_1__0__Impl : ( ',' ) ;
    public final void rule__Action__Group_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3353:1: ( ( ',' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3354:1: ( ',' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3354:1: ( ',' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3355:1: ','
            {
             before(grammarAccess.getActionAccess().getCommaKeyword_3_1_0()); 
            match(input,20,FOLLOW_20_in_rule__Action__Group_3_1__0__Impl6735); 
             after(grammarAccess.getActionAccess().getCommaKeyword_3_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group_3_1__0__Impl"


    // $ANTLR start "rule__Action__Group_3_1__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3368:1: rule__Action__Group_3_1__1 : rule__Action__Group_3_1__1__Impl ;
    public final void rule__Action__Group_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3372:1: ( rule__Action__Group_3_1__1__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3373:2: rule__Action__Group_3_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Action__Group_3_1__1__Impl_in_rule__Action__Group_3_1__16766);
            rule__Action__Group_3_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group_3_1__1"


    // $ANTLR start "rule__Action__Group_3_1__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3379:1: rule__Action__Group_3_1__1__Impl : ( ( rule__Action__ParametersAssignment_3_1_1 ) ) ;
    public final void rule__Action__Group_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3383:1: ( ( ( rule__Action__ParametersAssignment_3_1_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3384:1: ( ( rule__Action__ParametersAssignment_3_1_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3384:1: ( ( rule__Action__ParametersAssignment_3_1_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3385:1: ( rule__Action__ParametersAssignment_3_1_1 )
            {
             before(grammarAccess.getActionAccess().getParametersAssignment_3_1_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3386:1: ( rule__Action__ParametersAssignment_3_1_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3386:2: rule__Action__ParametersAssignment_3_1_1
            {
            pushFollow(FOLLOW_rule__Action__ParametersAssignment_3_1_1_in_rule__Action__Group_3_1__1__Impl6793);
            rule__Action__ParametersAssignment_3_1_1();

            state._fsp--;


            }

             after(grammarAccess.getActionAccess().getParametersAssignment_3_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__Group_3_1__1__Impl"


    // $ANTLR start "rule__Parameter__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3400:1: rule__Parameter__Group__0 : rule__Parameter__Group__0__Impl rule__Parameter__Group__1 ;
    public final void rule__Parameter__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3404:1: ( rule__Parameter__Group__0__Impl rule__Parameter__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3405:2: rule__Parameter__Group__0__Impl rule__Parameter__Group__1
            {
            pushFollow(FOLLOW_rule__Parameter__Group__0__Impl_in_rule__Parameter__Group__06827);
            rule__Parameter__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Parameter__Group__1_in_rule__Parameter__Group__06830);
            rule__Parameter__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Parameter__Group__0"


    // $ANTLR start "rule__Parameter__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3412:1: rule__Parameter__Group__0__Impl : ( ( rule__Parameter__NameAssignment_0 ) ) ;
    public final void rule__Parameter__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3416:1: ( ( ( rule__Parameter__NameAssignment_0 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3417:1: ( ( rule__Parameter__NameAssignment_0 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3417:1: ( ( rule__Parameter__NameAssignment_0 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3418:1: ( rule__Parameter__NameAssignment_0 )
            {
             before(grammarAccess.getParameterAccess().getNameAssignment_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3419:1: ( rule__Parameter__NameAssignment_0 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3419:2: rule__Parameter__NameAssignment_0
            {
            pushFollow(FOLLOW_rule__Parameter__NameAssignment_0_in_rule__Parameter__Group__0__Impl6857);
            rule__Parameter__NameAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getParameterAccess().getNameAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Parameter__Group__0__Impl"


    // $ANTLR start "rule__Parameter__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3429:1: rule__Parameter__Group__1 : rule__Parameter__Group__1__Impl rule__Parameter__Group__2 ;
    public final void rule__Parameter__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3433:1: ( rule__Parameter__Group__1__Impl rule__Parameter__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3434:2: rule__Parameter__Group__1__Impl rule__Parameter__Group__2
            {
            pushFollow(FOLLOW_rule__Parameter__Group__1__Impl_in_rule__Parameter__Group__16887);
            rule__Parameter__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Parameter__Group__2_in_rule__Parameter__Group__16890);
            rule__Parameter__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Parameter__Group__1"


    // $ANTLR start "rule__Parameter__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3441:1: rule__Parameter__Group__1__Impl : ( ':' ) ;
    public final void rule__Parameter__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3445:1: ( ( ':' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3446:1: ( ':' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3446:1: ( ':' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3447:1: ':'
            {
             before(grammarAccess.getParameterAccess().getColonKeyword_1()); 
            match(input,33,FOLLOW_33_in_rule__Parameter__Group__1__Impl6918); 
             after(grammarAccess.getParameterAccess().getColonKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Parameter__Group__1__Impl"


    // $ANTLR start "rule__Parameter__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3460:1: rule__Parameter__Group__2 : rule__Parameter__Group__2__Impl ;
    public final void rule__Parameter__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3464:1: ( rule__Parameter__Group__2__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3465:2: rule__Parameter__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__Parameter__Group__2__Impl_in_rule__Parameter__Group__26949);
            rule__Parameter__Group__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Parameter__Group__2"


    // $ANTLR start "rule__Parameter__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3471:1: rule__Parameter__Group__2__Impl : ( ( rule__Parameter__TypeAssignment_2 ) ) ;
    public final void rule__Parameter__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3475:1: ( ( ( rule__Parameter__TypeAssignment_2 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3476:1: ( ( rule__Parameter__TypeAssignment_2 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3476:1: ( ( rule__Parameter__TypeAssignment_2 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3477:1: ( rule__Parameter__TypeAssignment_2 )
            {
             before(grammarAccess.getParameterAccess().getTypeAssignment_2()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3478:1: ( rule__Parameter__TypeAssignment_2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3478:2: rule__Parameter__TypeAssignment_2
            {
            pushFollow(FOLLOW_rule__Parameter__TypeAssignment_2_in_rule__Parameter__Group__2__Impl6976);
            rule__Parameter__TypeAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getParameterAccess().getTypeAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Parameter__Group__2__Impl"


    // $ANTLR start "rule__DataType__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3494:1: rule__DataType__Group__0 : rule__DataType__Group__0__Impl rule__DataType__Group__1 ;
    public final void rule__DataType__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3498:1: ( rule__DataType__Group__0__Impl rule__DataType__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3499:2: rule__DataType__Group__0__Impl rule__DataType__Group__1
            {
            pushFollow(FOLLOW_rule__DataType__Group__0__Impl_in_rule__DataType__Group__07012);
            rule__DataType__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__DataType__Group__1_in_rule__DataType__Group__07015);
            rule__DataType__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataType__Group__0"


    // $ANTLR start "rule__DataType__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3506:1: rule__DataType__Group__0__Impl : ( 'datatype' ) ;
    public final void rule__DataType__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3510:1: ( ( 'datatype' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3511:1: ( 'datatype' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3511:1: ( 'datatype' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3512:1: 'datatype'
            {
             before(grammarAccess.getDataTypeAccess().getDatatypeKeyword_0()); 
            match(input,37,FOLLOW_37_in_rule__DataType__Group__0__Impl7043); 
             after(grammarAccess.getDataTypeAccess().getDatatypeKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataType__Group__0__Impl"


    // $ANTLR start "rule__DataType__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3525:1: rule__DataType__Group__1 : rule__DataType__Group__1__Impl ;
    public final void rule__DataType__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3529:1: ( rule__DataType__Group__1__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3530:2: rule__DataType__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__DataType__Group__1__Impl_in_rule__DataType__Group__17074);
            rule__DataType__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataType__Group__1"


    // $ANTLR start "rule__DataType__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3536:1: rule__DataType__Group__1__Impl : ( ( rule__DataType__NameAssignment_1 ) ) ;
    public final void rule__DataType__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3540:1: ( ( ( rule__DataType__NameAssignment_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3541:1: ( ( rule__DataType__NameAssignment_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3541:1: ( ( rule__DataType__NameAssignment_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3542:1: ( rule__DataType__NameAssignment_1 )
            {
             before(grammarAccess.getDataTypeAccess().getNameAssignment_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3543:1: ( rule__DataType__NameAssignment_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3543:2: rule__DataType__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__DataType__NameAssignment_1_in_rule__DataType__Group__1__Impl7101);
            rule__DataType__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getDataTypeAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataType__Group__1__Impl"


    // $ANTLR start "rule__Entity__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3557:1: rule__Entity__Group__0 : rule__Entity__Group__0__Impl rule__Entity__Group__1 ;
    public final void rule__Entity__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3561:1: ( rule__Entity__Group__0__Impl rule__Entity__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3562:2: rule__Entity__Group__0__Impl rule__Entity__Group__1
            {
            pushFollow(FOLLOW_rule__Entity__Group__0__Impl_in_rule__Entity__Group__07135);
            rule__Entity__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__1_in_rule__Entity__Group__07138);
            rule__Entity__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__0"


    // $ANTLR start "rule__Entity__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3569:1: rule__Entity__Group__0__Impl : ( 'entity' ) ;
    public final void rule__Entity__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3573:1: ( ( 'entity' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3574:1: ( 'entity' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3574:1: ( 'entity' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3575:1: 'entity'
            {
             before(grammarAccess.getEntityAccess().getEntityKeyword_0()); 
            match(input,38,FOLLOW_38_in_rule__Entity__Group__0__Impl7166); 
             after(grammarAccess.getEntityAccess().getEntityKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__0__Impl"


    // $ANTLR start "rule__Entity__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3588:1: rule__Entity__Group__1 : rule__Entity__Group__1__Impl rule__Entity__Group__2 ;
    public final void rule__Entity__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3592:1: ( rule__Entity__Group__1__Impl rule__Entity__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3593:2: rule__Entity__Group__1__Impl rule__Entity__Group__2
            {
            pushFollow(FOLLOW_rule__Entity__Group__1__Impl_in_rule__Entity__Group__17197);
            rule__Entity__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__2_in_rule__Entity__Group__17200);
            rule__Entity__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__1"


    // $ANTLR start "rule__Entity__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3600:1: rule__Entity__Group__1__Impl : ( ( rule__Entity__NameAssignment_1 ) ) ;
    public final void rule__Entity__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3604:1: ( ( ( rule__Entity__NameAssignment_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3605:1: ( ( rule__Entity__NameAssignment_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3605:1: ( ( rule__Entity__NameAssignment_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3606:1: ( rule__Entity__NameAssignment_1 )
            {
             before(grammarAccess.getEntityAccess().getNameAssignment_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3607:1: ( rule__Entity__NameAssignment_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3607:2: rule__Entity__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Entity__NameAssignment_1_in_rule__Entity__Group__1__Impl7227);
            rule__Entity__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getEntityAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__1__Impl"


    // $ANTLR start "rule__Entity__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3617:1: rule__Entity__Group__2 : rule__Entity__Group__2__Impl rule__Entity__Group__3 ;
    public final void rule__Entity__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3621:1: ( rule__Entity__Group__2__Impl rule__Entity__Group__3 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3622:2: rule__Entity__Group__2__Impl rule__Entity__Group__3
            {
            pushFollow(FOLLOW_rule__Entity__Group__2__Impl_in_rule__Entity__Group__27257);
            rule__Entity__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__3_in_rule__Entity__Group__27260);
            rule__Entity__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__2"


    // $ANTLR start "rule__Entity__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3629:1: rule__Entity__Group__2__Impl : ( ( rule__Entity__Group_2__0 )? ) ;
    public final void rule__Entity__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3633:1: ( ( ( rule__Entity__Group_2__0 )? ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3634:1: ( ( rule__Entity__Group_2__0 )? )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3634:1: ( ( rule__Entity__Group_2__0 )? )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3635:1: ( rule__Entity__Group_2__0 )?
            {
             before(grammarAccess.getEntityAccess().getGroup_2()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3636:1: ( rule__Entity__Group_2__0 )?
            int alt15=2;
            int LA15_0 = input.LA(1);

            if ( (LA15_0==39) ) {
                alt15=1;
            }
            switch (alt15) {
                case 1 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3636:2: rule__Entity__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__Entity__Group_2__0_in_rule__Entity__Group__2__Impl7287);
                    rule__Entity__Group_2__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getEntityAccess().getGroup_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__2__Impl"


    // $ANTLR start "rule__Entity__Group__3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3646:1: rule__Entity__Group__3 : rule__Entity__Group__3__Impl rule__Entity__Group__4 ;
    public final void rule__Entity__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3650:1: ( rule__Entity__Group__3__Impl rule__Entity__Group__4 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3651:2: rule__Entity__Group__3__Impl rule__Entity__Group__4
            {
            pushFollow(FOLLOW_rule__Entity__Group__3__Impl_in_rule__Entity__Group__37318);
            rule__Entity__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__4_in_rule__Entity__Group__37321);
            rule__Entity__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__3"


    // $ANTLR start "rule__Entity__Group__3__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3658:1: rule__Entity__Group__3__Impl : ( '{' ) ;
    public final void rule__Entity__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3662:1: ( ( '{' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3663:1: ( '{' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3663:1: ( '{' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3664:1: '{'
            {
             before(grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_3()); 
            match(input,12,FOLLOW_12_in_rule__Entity__Group__3__Impl7349); 
             after(grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__3__Impl"


    // $ANTLR start "rule__Entity__Group__4"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3677:1: rule__Entity__Group__4 : rule__Entity__Group__4__Impl rule__Entity__Group__5 ;
    public final void rule__Entity__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3681:1: ( rule__Entity__Group__4__Impl rule__Entity__Group__5 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3682:2: rule__Entity__Group__4__Impl rule__Entity__Group__5
            {
            pushFollow(FOLLOW_rule__Entity__Group__4__Impl_in_rule__Entity__Group__47380);
            rule__Entity__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__5_in_rule__Entity__Group__47383);
            rule__Entity__Group__5();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__4"


    // $ANTLR start "rule__Entity__Group__4__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3689:1: rule__Entity__Group__4__Impl : ( ( rule__Entity__AttributesAssignment_4 )* ) ;
    public final void rule__Entity__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3693:1: ( ( ( rule__Entity__AttributesAssignment_4 )* ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3694:1: ( ( rule__Entity__AttributesAssignment_4 )* )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3694:1: ( ( rule__Entity__AttributesAssignment_4 )* )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3695:1: ( rule__Entity__AttributesAssignment_4 )*
            {
             before(grammarAccess.getEntityAccess().getAttributesAssignment_4()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3696:1: ( rule__Entity__AttributesAssignment_4 )*
            loop16:
            do {
                int alt16=2;
                int LA16_0 = input.LA(1);

                if ( (LA16_0==RULE_ID||LA16_0==40) ) {
                    alt16=1;
                }


                switch (alt16) {
            	case 1 :
            	    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3696:2: rule__Entity__AttributesAssignment_4
            	    {
            	    pushFollow(FOLLOW_rule__Entity__AttributesAssignment_4_in_rule__Entity__Group__4__Impl7410);
            	    rule__Entity__AttributesAssignment_4();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop16;
                }
            } while (true);

             after(grammarAccess.getEntityAccess().getAttributesAssignment_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__4__Impl"


    // $ANTLR start "rule__Entity__Group__5"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3706:1: rule__Entity__Group__5 : rule__Entity__Group__5__Impl ;
    public final void rule__Entity__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3710:1: ( rule__Entity__Group__5__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3711:2: rule__Entity__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__Entity__Group__5__Impl_in_rule__Entity__Group__57441);
            rule__Entity__Group__5__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__5"


    // $ANTLR start "rule__Entity__Group__5__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3717:1: rule__Entity__Group__5__Impl : ( '}' ) ;
    public final void rule__Entity__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3721:1: ( ( '}' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3722:1: ( '}' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3722:1: ( '}' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3723:1: '}'
            {
             before(grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_5()); 
            match(input,13,FOLLOW_13_in_rule__Entity__Group__5__Impl7469); 
             after(grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__5__Impl"


    // $ANTLR start "rule__Entity__Group_2__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3748:1: rule__Entity__Group_2__0 : rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 ;
    public final void rule__Entity__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3752:1: ( rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3753:2: rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1
            {
            pushFollow(FOLLOW_rule__Entity__Group_2__0__Impl_in_rule__Entity__Group_2__07512);
            rule__Entity__Group_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group_2__1_in_rule__Entity__Group_2__07515);
            rule__Entity__Group_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group_2__0"


    // $ANTLR start "rule__Entity__Group_2__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3760:1: rule__Entity__Group_2__0__Impl : ( 'extends' ) ;
    public final void rule__Entity__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3764:1: ( ( 'extends' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3765:1: ( 'extends' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3765:1: ( 'extends' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3766:1: 'extends'
            {
             before(grammarAccess.getEntityAccess().getExtendsKeyword_2_0()); 
            match(input,39,FOLLOW_39_in_rule__Entity__Group_2__0__Impl7543); 
             after(grammarAccess.getEntityAccess().getExtendsKeyword_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group_2__0__Impl"


    // $ANTLR start "rule__Entity__Group_2__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3779:1: rule__Entity__Group_2__1 : rule__Entity__Group_2__1__Impl ;
    public final void rule__Entity__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3783:1: ( rule__Entity__Group_2__1__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3784:2: rule__Entity__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Entity__Group_2__1__Impl_in_rule__Entity__Group_2__17574);
            rule__Entity__Group_2__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group_2__1"


    // $ANTLR start "rule__Entity__Group_2__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3790:1: rule__Entity__Group_2__1__Impl : ( ( rule__Entity__SuperTypeAssignment_2_1 ) ) ;
    public final void rule__Entity__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3794:1: ( ( ( rule__Entity__SuperTypeAssignment_2_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3795:1: ( ( rule__Entity__SuperTypeAssignment_2_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3795:1: ( ( rule__Entity__SuperTypeAssignment_2_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3796:1: ( rule__Entity__SuperTypeAssignment_2_1 )
            {
             before(grammarAccess.getEntityAccess().getSuperTypeAssignment_2_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3797:1: ( rule__Entity__SuperTypeAssignment_2_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3797:2: rule__Entity__SuperTypeAssignment_2_1
            {
            pushFollow(FOLLOW_rule__Entity__SuperTypeAssignment_2_1_in_rule__Entity__Group_2__1__Impl7601);
            rule__Entity__SuperTypeAssignment_2_1();

            state._fsp--;


            }

             after(grammarAccess.getEntityAccess().getSuperTypeAssignment_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group_2__1__Impl"


    // $ANTLR start "rule__Attribute__Group__0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3811:1: rule__Attribute__Group__0 : rule__Attribute__Group__0__Impl rule__Attribute__Group__1 ;
    public final void rule__Attribute__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3815:1: ( rule__Attribute__Group__0__Impl rule__Attribute__Group__1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3816:2: rule__Attribute__Group__0__Impl rule__Attribute__Group__1
            {
            pushFollow(FOLLOW_rule__Attribute__Group__0__Impl_in_rule__Attribute__Group__07635);
            rule__Attribute__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Attribute__Group__1_in_rule__Attribute__Group__07638);
            rule__Attribute__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__0"


    // $ANTLR start "rule__Attribute__Group__0__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3823:1: rule__Attribute__Group__0__Impl : ( ( rule__Attribute__ManyAssignment_0 )? ) ;
    public final void rule__Attribute__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3827:1: ( ( ( rule__Attribute__ManyAssignment_0 )? ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3828:1: ( ( rule__Attribute__ManyAssignment_0 )? )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3828:1: ( ( rule__Attribute__ManyAssignment_0 )? )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3829:1: ( rule__Attribute__ManyAssignment_0 )?
            {
             before(grammarAccess.getAttributeAccess().getManyAssignment_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3830:1: ( rule__Attribute__ManyAssignment_0 )?
            int alt17=2;
            int LA17_0 = input.LA(1);

            if ( (LA17_0==40) ) {
                alt17=1;
            }
            switch (alt17) {
                case 1 :
                    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3830:2: rule__Attribute__ManyAssignment_0
                    {
                    pushFollow(FOLLOW_rule__Attribute__ManyAssignment_0_in_rule__Attribute__Group__0__Impl7665);
                    rule__Attribute__ManyAssignment_0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getAttributeAccess().getManyAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__0__Impl"


    // $ANTLR start "rule__Attribute__Group__1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3840:1: rule__Attribute__Group__1 : rule__Attribute__Group__1__Impl rule__Attribute__Group__2 ;
    public final void rule__Attribute__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3844:1: ( rule__Attribute__Group__1__Impl rule__Attribute__Group__2 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3845:2: rule__Attribute__Group__1__Impl rule__Attribute__Group__2
            {
            pushFollow(FOLLOW_rule__Attribute__Group__1__Impl_in_rule__Attribute__Group__17696);
            rule__Attribute__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Attribute__Group__2_in_rule__Attribute__Group__17699);
            rule__Attribute__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__1"


    // $ANTLR start "rule__Attribute__Group__1__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3852:1: rule__Attribute__Group__1__Impl : ( ( rule__Attribute__NameAssignment_1 ) ) ;
    public final void rule__Attribute__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3856:1: ( ( ( rule__Attribute__NameAssignment_1 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3857:1: ( ( rule__Attribute__NameAssignment_1 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3857:1: ( ( rule__Attribute__NameAssignment_1 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3858:1: ( rule__Attribute__NameAssignment_1 )
            {
             before(grammarAccess.getAttributeAccess().getNameAssignment_1()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3859:1: ( rule__Attribute__NameAssignment_1 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3859:2: rule__Attribute__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Attribute__NameAssignment_1_in_rule__Attribute__Group__1__Impl7726);
            rule__Attribute__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getAttributeAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__1__Impl"


    // $ANTLR start "rule__Attribute__Group__2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3869:1: rule__Attribute__Group__2 : rule__Attribute__Group__2__Impl rule__Attribute__Group__3 ;
    public final void rule__Attribute__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3873:1: ( rule__Attribute__Group__2__Impl rule__Attribute__Group__3 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3874:2: rule__Attribute__Group__2__Impl rule__Attribute__Group__3
            {
            pushFollow(FOLLOW_rule__Attribute__Group__2__Impl_in_rule__Attribute__Group__27756);
            rule__Attribute__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Attribute__Group__3_in_rule__Attribute__Group__27759);
            rule__Attribute__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__2"


    // $ANTLR start "rule__Attribute__Group__2__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3881:1: rule__Attribute__Group__2__Impl : ( ':' ) ;
    public final void rule__Attribute__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3885:1: ( ( ':' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3886:1: ( ':' )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3886:1: ( ':' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3887:1: ':'
            {
             before(grammarAccess.getAttributeAccess().getColonKeyword_2()); 
            match(input,33,FOLLOW_33_in_rule__Attribute__Group__2__Impl7787); 
             after(grammarAccess.getAttributeAccess().getColonKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__2__Impl"


    // $ANTLR start "rule__Attribute__Group__3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3900:1: rule__Attribute__Group__3 : rule__Attribute__Group__3__Impl ;
    public final void rule__Attribute__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3904:1: ( rule__Attribute__Group__3__Impl )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3905:2: rule__Attribute__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__Attribute__Group__3__Impl_in_rule__Attribute__Group__37818);
            rule__Attribute__Group__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__3"


    // $ANTLR start "rule__Attribute__Group__3__Impl"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3911:1: rule__Attribute__Group__3__Impl : ( ( rule__Attribute__TypeAssignment_3 ) ) ;
    public final void rule__Attribute__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3915:1: ( ( ( rule__Attribute__TypeAssignment_3 ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3916:1: ( ( rule__Attribute__TypeAssignment_3 ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3916:1: ( ( rule__Attribute__TypeAssignment_3 ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3917:1: ( rule__Attribute__TypeAssignment_3 )
            {
             before(grammarAccess.getAttributeAccess().getTypeAssignment_3()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3918:1: ( rule__Attribute__TypeAssignment_3 )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3918:2: rule__Attribute__TypeAssignment_3
            {
            pushFollow(FOLLOW_rule__Attribute__TypeAssignment_3_in_rule__Attribute__Group__3__Impl7845);
            rule__Attribute__TypeAssignment_3();

            state._fsp--;


            }

             after(grammarAccess.getAttributeAccess().getTypeAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__3__Impl"


    // $ANTLR start "rule__Main__ElementsAssignment"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3937:1: rule__Main__ElementsAssignment : ( ruleAbstractElement ) ;
    public final void rule__Main__ElementsAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3941:1: ( ( ruleAbstractElement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3942:1: ( ruleAbstractElement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3942:1: ( ruleAbstractElement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3943:1: ruleAbstractElement
            {
             before(grammarAccess.getMainAccess().getElementsAbstractElementParserRuleCall_0()); 
            pushFollow(FOLLOW_ruleAbstractElement_in_rule__Main__ElementsAssignment7888);
            ruleAbstractElement();

            state._fsp--;

             after(grammarAccess.getMainAccess().getElementsAbstractElementParserRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Main__ElementsAssignment"


    // $ANTLR start "rule__PackageDeclaration__NameAssignment_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3952:1: rule__PackageDeclaration__NameAssignment_1 : ( ruleQualifiedName ) ;
    public final void rule__PackageDeclaration__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3956:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3957:1: ( ruleQualifiedName )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3957:1: ( ruleQualifiedName )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3958:1: ruleQualifiedName
            {
             before(grammarAccess.getPackageDeclarationAccess().getNameQualifiedNameParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__PackageDeclaration__NameAssignment_17919);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getPackageDeclarationAccess().getNameQualifiedNameParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageDeclaration__NameAssignment_1"


    // $ANTLR start "rule__PackageDeclaration__ElementsAssignment_3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3967:1: rule__PackageDeclaration__ElementsAssignment_3 : ( ruleAbstractElement ) ;
    public final void rule__PackageDeclaration__ElementsAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3971:1: ( ( ruleAbstractElement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3972:1: ( ruleAbstractElement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3972:1: ( ruleAbstractElement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3973:1: ruleAbstractElement
            {
             before(grammarAccess.getPackageDeclarationAccess().getElementsAbstractElementParserRuleCall_3_0()); 
            pushFollow(FOLLOW_ruleAbstractElement_in_rule__PackageDeclaration__ElementsAssignment_37950);
            ruleAbstractElement();

            state._fsp--;

             after(grammarAccess.getPackageDeclarationAccess().getElementsAbstractElementParserRuleCall_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageDeclaration__ElementsAssignment_3"


    // $ANTLR start "rule__PackageImport__ImportedNamespaceAssignment_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3982:1: rule__PackageImport__ImportedNamespaceAssignment_1 : ( ruleQualifiedNameWithWildCard ) ;
    public final void rule__PackageImport__ImportedNamespaceAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3986:1: ( ( ruleQualifiedNameWithWildCard ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3987:1: ( ruleQualifiedNameWithWildCard )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3987:1: ( ruleQualifiedNameWithWildCard )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3988:1: ruleQualifiedNameWithWildCard
            {
             before(grammarAccess.getPackageImportAccess().getImportedNamespaceQualifiedNameWithWildCardParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleQualifiedNameWithWildCard_in_rule__PackageImport__ImportedNamespaceAssignment_17981);
            ruleQualifiedNameWithWildCard();

            state._fsp--;

             after(grammarAccess.getPackageImportAccess().getImportedNamespaceQualifiedNameWithWildCardParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackageImport__ImportedNamespaceAssignment_1"


    // $ANTLR start "rule__ComponentBetweenConstraint__MiddleActionAssignment_0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:3997:1: rule__ComponentBetweenConstraint__MiddleActionAssignment_0 : ( ruleComponentActionStatement ) ;
    public final void rule__ComponentBetweenConstraint__MiddleActionAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4001:1: ( ( ruleComponentActionStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4002:1: ( ruleComponentActionStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4002:1: ( ruleComponentActionStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4003:1: ruleComponentActionStatement
            {
             before(grammarAccess.getComponentBetweenConstraintAccess().getMiddleActionComponentActionStatementParserRuleCall_0_0()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_rule__ComponentBetweenConstraint__MiddleActionAssignment_08012);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentBetweenConstraintAccess().getMiddleActionComponentActionStatementParserRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentBetweenConstraint__MiddleActionAssignment_0"


    // $ANTLR start "rule__ComponentBetweenConstraint__BeforeActionAssignment_2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4012:1: rule__ComponentBetweenConstraint__BeforeActionAssignment_2 : ( ruleComponentActionStatement ) ;
    public final void rule__ComponentBetweenConstraint__BeforeActionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4016:1: ( ( ruleComponentActionStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4017:1: ( ruleComponentActionStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4017:1: ( ruleComponentActionStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4018:1: ruleComponentActionStatement
            {
             before(grammarAccess.getComponentBetweenConstraintAccess().getBeforeActionComponentActionStatementParserRuleCall_2_0()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_rule__ComponentBetweenConstraint__BeforeActionAssignment_28043);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentBetweenConstraintAccess().getBeforeActionComponentActionStatementParserRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentBetweenConstraint__BeforeActionAssignment_2"


    // $ANTLR start "rule__ComponentBetweenConstraint__AfterActionAssignment_4"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4027:1: rule__ComponentBetweenConstraint__AfterActionAssignment_4 : ( ruleComponentActionStatement ) ;
    public final void rule__ComponentBetweenConstraint__AfterActionAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4031:1: ( ( ruleComponentActionStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4032:1: ( ruleComponentActionStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4032:1: ( ruleComponentActionStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4033:1: ruleComponentActionStatement
            {
             before(grammarAccess.getComponentBetweenConstraintAccess().getAfterActionComponentActionStatementParserRuleCall_4_0()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_rule__ComponentBetweenConstraint__AfterActionAssignment_48074);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentBetweenConstraintAccess().getAfterActionComponentActionStatementParserRuleCall_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentBetweenConstraint__AfterActionAssignment_4"


    // $ANTLR start "rule__ComponentAlternationConstraint__Action1Assignment_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4042:1: rule__ComponentAlternationConstraint__Action1Assignment_1 : ( ruleComponentActionStatement ) ;
    public final void rule__ComponentAlternationConstraint__Action1Assignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4046:1: ( ( ruleComponentActionStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4047:1: ( ruleComponentActionStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4047:1: ( ruleComponentActionStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4048:1: ruleComponentActionStatement
            {
             before(grammarAccess.getComponentAlternationConstraintAccess().getAction1ComponentActionStatementParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_rule__ComponentAlternationConstraint__Action1Assignment_18105);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentAlternationConstraintAccess().getAction1ComponentActionStatementParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentAlternationConstraint__Action1Assignment_1"


    // $ANTLR start "rule__ComponentAlternationConstraint__Action2Assignment_3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4057:1: rule__ComponentAlternationConstraint__Action2Assignment_3 : ( ruleComponentActionStatement ) ;
    public final void rule__ComponentAlternationConstraint__Action2Assignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4061:1: ( ( ruleComponentActionStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4062:1: ( ruleComponentActionStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4062:1: ( ruleComponentActionStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4063:1: ruleComponentActionStatement
            {
             before(grammarAccess.getComponentAlternationConstraintAccess().getAction2ComponentActionStatementParserRuleCall_3_0()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_rule__ComponentAlternationConstraint__Action2Assignment_38136);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentAlternationConstraintAccess().getAction2ComponentActionStatementParserRuleCall_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentAlternationConstraint__Action2Assignment_3"


    // $ANTLR start "rule__ComponentLeadstoConstraint__LeftActionAssignment_0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4072:1: rule__ComponentLeadstoConstraint__LeftActionAssignment_0 : ( ruleComponentActionStatement ) ;
    public final void rule__ComponentLeadstoConstraint__LeftActionAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4076:1: ( ( ruleComponentActionStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4077:1: ( ruleComponentActionStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4077:1: ( ruleComponentActionStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4078:1: ruleComponentActionStatement
            {
             before(grammarAccess.getComponentLeadstoConstraintAccess().getLeftActionComponentActionStatementParserRuleCall_0_0()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_rule__ComponentLeadstoConstraint__LeftActionAssignment_08167);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentLeadstoConstraintAccess().getLeftActionComponentActionStatementParserRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentLeadstoConstraint__LeftActionAssignment_0"


    // $ANTLR start "rule__ComponentLeadstoConstraint__RightActionAssignment_2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4087:1: rule__ComponentLeadstoConstraint__RightActionAssignment_2 : ( ruleComponentActionStatement ) ;
    public final void rule__ComponentLeadstoConstraint__RightActionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4091:1: ( ( ruleComponentActionStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4092:1: ( ruleComponentActionStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4092:1: ( ruleComponentActionStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4093:1: ruleComponentActionStatement
            {
             before(grammarAccess.getComponentLeadstoConstraintAccess().getRightActionComponentActionStatementParserRuleCall_2_0()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_rule__ComponentLeadstoConstraint__RightActionAssignment_28198);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentLeadstoConstraintAccess().getRightActionComponentActionStatementParserRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentLeadstoConstraint__RightActionAssignment_2"


    // $ANTLR start "rule__ComponentCausedbyConstraint__LeftActionAssignment_0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4102:1: rule__ComponentCausedbyConstraint__LeftActionAssignment_0 : ( ruleComponentActionStatement ) ;
    public final void rule__ComponentCausedbyConstraint__LeftActionAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4106:1: ( ( ruleComponentActionStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4107:1: ( ruleComponentActionStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4107:1: ( ruleComponentActionStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4108:1: ruleComponentActionStatement
            {
             before(grammarAccess.getComponentCausedbyConstraintAccess().getLeftActionComponentActionStatementParserRuleCall_0_0()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_rule__ComponentCausedbyConstraint__LeftActionAssignment_08229);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentCausedbyConstraintAccess().getLeftActionComponentActionStatementParserRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentCausedbyConstraint__LeftActionAssignment_0"


    // $ANTLR start "rule__ComponentCausedbyConstraint__RightActionAssignment_2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4117:1: rule__ComponentCausedbyConstraint__RightActionAssignment_2 : ( ruleComponentActionStatement ) ;
    public final void rule__ComponentCausedbyConstraint__RightActionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4121:1: ( ( ruleComponentActionStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4122:1: ( ruleComponentActionStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4122:1: ( ruleComponentActionStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4123:1: ruleComponentActionStatement
            {
             before(grammarAccess.getComponentCausedbyConstraintAccess().getRightActionComponentActionStatementParserRuleCall_2_0()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_rule__ComponentCausedbyConstraint__RightActionAssignment_28260);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentCausedbyConstraintAccess().getRightActionComponentActionStatementParserRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentCausedbyConstraint__RightActionAssignment_2"


    // $ANTLR start "rule__ComponentPrecedesConstraint__LeftActionAssignment_0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4132:1: rule__ComponentPrecedesConstraint__LeftActionAssignment_0 : ( ruleComponentActionStatement ) ;
    public final void rule__ComponentPrecedesConstraint__LeftActionAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4136:1: ( ( ruleComponentActionStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4137:1: ( ruleComponentActionStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4137:1: ( ruleComponentActionStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4138:1: ruleComponentActionStatement
            {
             before(grammarAccess.getComponentPrecedesConstraintAccess().getLeftActionComponentActionStatementParserRuleCall_0_0()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_rule__ComponentPrecedesConstraint__LeftActionAssignment_08291);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentPrecedesConstraintAccess().getLeftActionComponentActionStatementParserRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentPrecedesConstraint__LeftActionAssignment_0"


    // $ANTLR start "rule__ComponentPrecedesConstraint__RightActionAssignment_2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4147:1: rule__ComponentPrecedesConstraint__RightActionAssignment_2 : ( ruleComponentActionStatement ) ;
    public final void rule__ComponentPrecedesConstraint__RightActionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4151:1: ( ( ruleComponentActionStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4152:1: ( ruleComponentActionStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4152:1: ( ruleComponentActionStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4153:1: ruleComponentActionStatement
            {
             before(grammarAccess.getComponentPrecedesConstraintAccess().getRightActionComponentActionStatementParserRuleCall_2_0()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_rule__ComponentPrecedesConstraint__RightActionAssignment_28322);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentPrecedesConstraintAccess().getRightActionComponentActionStatementParserRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentPrecedesConstraint__RightActionAssignment_2"


    // $ANTLR start "rule__ComponentFollowsConstraint__LeftActionAssignment_0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4162:1: rule__ComponentFollowsConstraint__LeftActionAssignment_0 : ( ruleComponentActionStatement ) ;
    public final void rule__ComponentFollowsConstraint__LeftActionAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4166:1: ( ( ruleComponentActionStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4167:1: ( ruleComponentActionStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4167:1: ( ruleComponentActionStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4168:1: ruleComponentActionStatement
            {
             before(grammarAccess.getComponentFollowsConstraintAccess().getLeftActionComponentActionStatementParserRuleCall_0_0()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_rule__ComponentFollowsConstraint__LeftActionAssignment_08353);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentFollowsConstraintAccess().getLeftActionComponentActionStatementParserRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentFollowsConstraint__LeftActionAssignment_0"


    // $ANTLR start "rule__ComponentFollowsConstraint__RightActionAssignment_2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4177:1: rule__ComponentFollowsConstraint__RightActionAssignment_2 : ( ruleComponentActionStatement ) ;
    public final void rule__ComponentFollowsConstraint__RightActionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4181:1: ( ( ruleComponentActionStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4182:1: ( ruleComponentActionStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4182:1: ( ruleComponentActionStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4183:1: ruleComponentActionStatement
            {
             before(grammarAccess.getComponentFollowsConstraintAccess().getRightActionComponentActionStatementParserRuleCall_2_0()); 
            pushFollow(FOLLOW_ruleComponentActionStatement_in_rule__ComponentFollowsConstraint__RightActionAssignment_28384);
            ruleComponentActionStatement();

            state._fsp--;

             after(grammarAccess.getComponentFollowsConstraintAccess().getRightActionComponentActionStatementParserRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentFollowsConstraint__RightActionAssignment_2"


    // $ANTLR start "rule__ComponentActionStatement__ContractAssignment_0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4192:1: rule__ComponentActionStatement__ContractAssignment_0 : ( ( RULE_ID ) ) ;
    public final void rule__ComponentActionStatement__ContractAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4196:1: ( ( ( RULE_ID ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4197:1: ( ( RULE_ID ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4197:1: ( ( RULE_ID ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4198:1: ( RULE_ID )
            {
             before(grammarAccess.getComponentActionStatementAccess().getContractContractCrossReference_0_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4199:1: ( RULE_ID )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4200:1: RULE_ID
            {
             before(grammarAccess.getComponentActionStatementAccess().getContractContractIDTerminalRuleCall_0_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ComponentActionStatement__ContractAssignment_08419); 
             after(grammarAccess.getComponentActionStatementAccess().getContractContractIDTerminalRuleCall_0_0_1()); 

            }

             after(grammarAccess.getComponentActionStatementAccess().getContractContractCrossReference_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentActionStatement__ContractAssignment_0"


    // $ANTLR start "rule__ComponentActionStatement__ActionAssignment_2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4211:1: rule__ComponentActionStatement__ActionAssignment_2 : ( ( ruleQualifiedName ) ) ;
    public final void rule__ComponentActionStatement__ActionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4215:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4216:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4216:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4217:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getComponentActionStatementAccess().getActionActionCrossReference_2_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4218:1: ( ruleQualifiedName )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4219:1: ruleQualifiedName
            {
             before(grammarAccess.getComponentActionStatementAccess().getActionActionQualifiedNameParserRuleCall_2_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__ComponentActionStatement__ActionAssignment_28458);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getComponentActionStatementAccess().getActionActionQualifiedNameParserRuleCall_2_0_1()); 

            }

             after(grammarAccess.getComponentActionStatementAccess().getActionActionCrossReference_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentActionStatement__ActionAssignment_2"


    // $ANTLR start "rule__BindComponents__LeftComponentAssignment_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4230:1: rule__BindComponents__LeftComponentAssignment_1 : ( ( ruleQualifiedName ) ) ;
    public final void rule__BindComponents__LeftComponentAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4234:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4235:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4235:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4236:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getBindComponentsAccess().getLeftComponentComponentInstanceCrossReference_1_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4237:1: ( ruleQualifiedName )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4238:1: ruleQualifiedName
            {
             before(grammarAccess.getBindComponentsAccess().getLeftComponentComponentInstanceQualifiedNameParserRuleCall_1_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__BindComponents__LeftComponentAssignment_18497);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getBindComponentsAccess().getLeftComponentComponentInstanceQualifiedNameParserRuleCall_1_0_1()); 

            }

             after(grammarAccess.getBindComponentsAccess().getLeftComponentComponentInstanceCrossReference_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__LeftComponentAssignment_1"


    // $ANTLR start "rule__BindComponents__LeftContractAssignment_3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4249:1: rule__BindComponents__LeftContractAssignment_3 : ( ( ruleQualifiedName ) ) ;
    public final void rule__BindComponents__LeftContractAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4253:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4254:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4254:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4255:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getBindComponentsAccess().getLeftContractContractCrossReference_3_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4256:1: ( ruleQualifiedName )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4257:1: ruleQualifiedName
            {
             before(grammarAccess.getBindComponentsAccess().getLeftContractContractQualifiedNameParserRuleCall_3_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__BindComponents__LeftContractAssignment_38536);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getBindComponentsAccess().getLeftContractContractQualifiedNameParserRuleCall_3_0_1()); 

            }

             after(grammarAccess.getBindComponentsAccess().getLeftContractContractCrossReference_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__LeftContractAssignment_3"


    // $ANTLR start "rule__BindComponents__RightComponentAssignment_5"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4268:1: rule__BindComponents__RightComponentAssignment_5 : ( ( ruleQualifiedName ) ) ;
    public final void rule__BindComponents__RightComponentAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4272:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4273:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4273:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4274:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getBindComponentsAccess().getRightComponentComponentInstanceCrossReference_5_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4275:1: ( ruleQualifiedName )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4276:1: ruleQualifiedName
            {
             before(grammarAccess.getBindComponentsAccess().getRightComponentComponentInstanceQualifiedNameParserRuleCall_5_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__BindComponents__RightComponentAssignment_58575);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getBindComponentsAccess().getRightComponentComponentInstanceQualifiedNameParserRuleCall_5_0_1()); 

            }

             after(grammarAccess.getBindComponentsAccess().getRightComponentComponentInstanceCrossReference_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__RightComponentAssignment_5"


    // $ANTLR start "rule__BindComponents__RightContractAssignment_7"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4287:1: rule__BindComponents__RightContractAssignment_7 : ( ( ruleQualifiedName ) ) ;
    public final void rule__BindComponents__RightContractAssignment_7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4291:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4292:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4292:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4293:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getBindComponentsAccess().getRightContractContractCrossReference_7_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4294:1: ( ruleQualifiedName )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4295:1: ruleQualifiedName
            {
             before(grammarAccess.getBindComponentsAccess().getRightContractContractQualifiedNameParserRuleCall_7_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__BindComponents__RightContractAssignment_78614);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getBindComponentsAccess().getRightContractContractQualifiedNameParserRuleCall_7_0_1()); 

            }

             after(grammarAccess.getBindComponentsAccess().getRightContractContractCrossReference_7_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BindComponents__RightContractAssignment_7"


    // $ANTLR start "rule__ComponentInstance__NameAssignment_0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4306:1: rule__ComponentInstance__NameAssignment_0 : ( RULE_ID ) ;
    public final void rule__ComponentInstance__NameAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4310:1: ( ( RULE_ID ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4311:1: ( RULE_ID )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4311:1: ( RULE_ID )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4312:1: RULE_ID
            {
             before(grammarAccess.getComponentInstanceAccess().getNameIDTerminalRuleCall_0_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ComponentInstance__NameAssignment_08649); 
             after(grammarAccess.getComponentInstanceAccess().getNameIDTerminalRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentInstance__NameAssignment_0"


    // $ANTLR start "rule__ComponentInstance__ComponentAssignment_2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4321:1: rule__ComponentInstance__ComponentAssignment_2 : ( ( ruleQualifiedName ) ) ;
    public final void rule__ComponentInstance__ComponentAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4325:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4326:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4326:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4327:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getComponentInstanceAccess().getComponentComponentCrossReference_2_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4328:1: ( ruleQualifiedName )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4329:1: ruleQualifiedName
            {
             before(grammarAccess.getComponentInstanceAccess().getComponentComponentQualifiedNameParserRuleCall_2_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__ComponentInstance__ComponentAssignment_28684);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getComponentInstanceAccess().getComponentComponentQualifiedNameParserRuleCall_2_0_1()); 

            }

             after(grammarAccess.getComponentInstanceAccess().getComponentComponentCrossReference_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ComponentInstance__ComponentAssignment_2"


    // $ANTLR start "rule__Component__NameAssignment_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4340:1: rule__Component__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Component__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4344:1: ( ( RULE_ID ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4345:1: ( RULE_ID )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4345:1: ( RULE_ID )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4346:1: RULE_ID
            {
             before(grammarAccess.getComponentAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Component__NameAssignment_18719); 
             after(grammarAccess.getComponentAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__NameAssignment_1"


    // $ANTLR start "rule__Component__ProvidesAssignment_3_0_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4355:1: rule__Component__ProvidesAssignment_3_0_1 : ( ruleContract ) ;
    public final void rule__Component__ProvidesAssignment_3_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4359:1: ( ( ruleContract ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4360:1: ( ruleContract )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4360:1: ( ruleContract )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4361:1: ruleContract
            {
             before(grammarAccess.getComponentAccess().getProvidesContractParserRuleCall_3_0_1_0()); 
            pushFollow(FOLLOW_ruleContract_in_rule__Component__ProvidesAssignment_3_0_18750);
            ruleContract();

            state._fsp--;

             after(grammarAccess.getComponentAccess().getProvidesContractParserRuleCall_3_0_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__ProvidesAssignment_3_0_1"


    // $ANTLR start "rule__Component__RequiresAssignment_3_1_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4370:1: rule__Component__RequiresAssignment_3_1_1 : ( ruleContract ) ;
    public final void rule__Component__RequiresAssignment_3_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4374:1: ( ( ruleContract ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4375:1: ( ruleContract )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4375:1: ( ruleContract )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4376:1: ruleContract
            {
             before(grammarAccess.getComponentAccess().getRequiresContractParserRuleCall_3_1_1_0()); 
            pushFollow(FOLLOW_ruleContract_in_rule__Component__RequiresAssignment_3_1_18781);
            ruleContract();

            state._fsp--;

             after(grammarAccess.getComponentAccess().getRequiresContractParserRuleCall_3_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__RequiresAssignment_3_1_1"


    // $ANTLR start "rule__Component__StatementsAssignment_4_2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4385:1: rule__Component__StatementsAssignment_4_2 : ( ruleComponentStatement ) ;
    public final void rule__Component__StatementsAssignment_4_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4389:1: ( ( ruleComponentStatement ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4390:1: ( ruleComponentStatement )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4390:1: ( ruleComponentStatement )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4391:1: ruleComponentStatement
            {
             before(grammarAccess.getComponentAccess().getStatementsComponentStatementParserRuleCall_4_2_0()); 
            pushFollow(FOLLOW_ruleComponentStatement_in_rule__Component__StatementsAssignment_4_28812);
            ruleComponentStatement();

            state._fsp--;

             after(grammarAccess.getComponentAccess().getStatementsComponentStatementParserRuleCall_4_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Component__StatementsAssignment_4_2"


    // $ANTLR start "rule__Contract__NameAssignment_0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4400:1: rule__Contract__NameAssignment_0 : ( RULE_ID ) ;
    public final void rule__Contract__NameAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4404:1: ( ( RULE_ID ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4405:1: ( RULE_ID )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4405:1: ( RULE_ID )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4406:1: RULE_ID
            {
             before(grammarAccess.getContractAccess().getNameIDTerminalRuleCall_0_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Contract__NameAssignment_08843); 
             after(grammarAccess.getContractAccess().getNameIDTerminalRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Contract__NameAssignment_0"


    // $ANTLR start "rule__Contract__InterfaceAssignment_2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4415:1: rule__Contract__InterfaceAssignment_2 : ( ( ruleQualifiedName ) ) ;
    public final void rule__Contract__InterfaceAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4419:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4420:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4420:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4421:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getContractAccess().getInterfaceInterfaceCrossReference_2_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4422:1: ( ruleQualifiedName )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4423:1: ruleQualifiedName
            {
             before(grammarAccess.getContractAccess().getInterfaceInterfaceQualifiedNameParserRuleCall_2_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__Contract__InterfaceAssignment_28878);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getContractAccess().getInterfaceInterfaceQualifiedNameParserRuleCall_2_0_1()); 

            }

             after(grammarAccess.getContractAccess().getInterfaceInterfaceCrossReference_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Contract__InterfaceAssignment_2"


    // $ANTLR start "rule__Interface__NameAssignment_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4434:1: rule__Interface__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Interface__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4438:1: ( ( RULE_ID ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4439:1: ( RULE_ID )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4439:1: ( RULE_ID )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4440:1: RULE_ID
            {
             before(grammarAccess.getInterfaceAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Interface__NameAssignment_18913); 
             after(grammarAccess.getInterfaceAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__NameAssignment_1"


    // $ANTLR start "rule__Interface__ActionsAssignment_3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4449:1: rule__Interface__ActionsAssignment_3 : ( ruleAction ) ;
    public final void rule__Interface__ActionsAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4453:1: ( ( ruleAction ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4454:1: ( ruleAction )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4454:1: ( ruleAction )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4455:1: ruleAction
            {
             before(grammarAccess.getInterfaceAccess().getActionsActionParserRuleCall_3_0()); 
            pushFollow(FOLLOW_ruleAction_in_rule__Interface__ActionsAssignment_38944);
            ruleAction();

            state._fsp--;

             after(grammarAccess.getInterfaceAccess().getActionsActionParserRuleCall_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Interface__ActionsAssignment_3"


    // $ANTLR start "rule__Action__ReturnAssignment_0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4464:1: rule__Action__ReturnAssignment_0 : ( ( ruleQualifiedName ) ) ;
    public final void rule__Action__ReturnAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4468:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4469:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4469:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4470:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getActionAccess().getReturnTypeCrossReference_0_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4471:1: ( ruleQualifiedName )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4472:1: ruleQualifiedName
            {
             before(grammarAccess.getActionAccess().getReturnTypeQualifiedNameParserRuleCall_0_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__Action__ReturnAssignment_08979);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getActionAccess().getReturnTypeQualifiedNameParserRuleCall_0_0_1()); 

            }

             after(grammarAccess.getActionAccess().getReturnTypeCrossReference_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__ReturnAssignment_0"


    // $ANTLR start "rule__Action__NameAssignment_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4483:1: rule__Action__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Action__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4487:1: ( ( RULE_ID ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4488:1: ( RULE_ID )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4488:1: ( RULE_ID )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4489:1: RULE_ID
            {
             before(grammarAccess.getActionAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Action__NameAssignment_19014); 
             after(grammarAccess.getActionAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__NameAssignment_1"


    // $ANTLR start "rule__Action__ParametersAssignment_3_0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4498:1: rule__Action__ParametersAssignment_3_0 : ( ruleParameter ) ;
    public final void rule__Action__ParametersAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4502:1: ( ( ruleParameter ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4503:1: ( ruleParameter )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4503:1: ( ruleParameter )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4504:1: ruleParameter
            {
             before(grammarAccess.getActionAccess().getParametersParameterParserRuleCall_3_0_0()); 
            pushFollow(FOLLOW_ruleParameter_in_rule__Action__ParametersAssignment_3_09045);
            ruleParameter();

            state._fsp--;

             after(grammarAccess.getActionAccess().getParametersParameterParserRuleCall_3_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__ParametersAssignment_3_0"


    // $ANTLR start "rule__Action__ParametersAssignment_3_1_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4513:1: rule__Action__ParametersAssignment_3_1_1 : ( ruleParameter ) ;
    public final void rule__Action__ParametersAssignment_3_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4517:1: ( ( ruleParameter ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4518:1: ( ruleParameter )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4518:1: ( ruleParameter )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4519:1: ruleParameter
            {
             before(grammarAccess.getActionAccess().getParametersParameterParserRuleCall_3_1_1_0()); 
            pushFollow(FOLLOW_ruleParameter_in_rule__Action__ParametersAssignment_3_1_19076);
            ruleParameter();

            state._fsp--;

             after(grammarAccess.getActionAccess().getParametersParameterParserRuleCall_3_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Action__ParametersAssignment_3_1_1"


    // $ANTLR start "rule__Parameter__NameAssignment_0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4528:1: rule__Parameter__NameAssignment_0 : ( RULE_ID ) ;
    public final void rule__Parameter__NameAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4532:1: ( ( RULE_ID ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4533:1: ( RULE_ID )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4533:1: ( RULE_ID )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4534:1: RULE_ID
            {
             before(grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_0_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Parameter__NameAssignment_09107); 
             after(grammarAccess.getParameterAccess().getNameIDTerminalRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Parameter__NameAssignment_0"


    // $ANTLR start "rule__Parameter__TypeAssignment_2"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4543:1: rule__Parameter__TypeAssignment_2 : ( ( ruleQualifiedName ) ) ;
    public final void rule__Parameter__TypeAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4547:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4548:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4548:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4549:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getParameterAccess().getTypeTypeCrossReference_2_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4550:1: ( ruleQualifiedName )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4551:1: ruleQualifiedName
            {
             before(grammarAccess.getParameterAccess().getTypeTypeQualifiedNameParserRuleCall_2_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__Parameter__TypeAssignment_29142);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getParameterAccess().getTypeTypeQualifiedNameParserRuleCall_2_0_1()); 

            }

             after(grammarAccess.getParameterAccess().getTypeTypeCrossReference_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Parameter__TypeAssignment_2"


    // $ANTLR start "rule__DataType__NameAssignment_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4562:1: rule__DataType__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__DataType__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4566:1: ( ( RULE_ID ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4567:1: ( RULE_ID )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4567:1: ( RULE_ID )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4568:1: RULE_ID
            {
             before(grammarAccess.getDataTypeAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__DataType__NameAssignment_19177); 
             after(grammarAccess.getDataTypeAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataType__NameAssignment_1"


    // $ANTLR start "rule__Entity__NameAssignment_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4577:1: rule__Entity__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Entity__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4581:1: ( ( RULE_ID ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4582:1: ( RULE_ID )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4582:1: ( RULE_ID )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4583:1: RULE_ID
            {
             before(grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Entity__NameAssignment_19208); 
             after(grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__NameAssignment_1"


    // $ANTLR start "rule__Entity__SuperTypeAssignment_2_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4592:1: rule__Entity__SuperTypeAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
    public final void rule__Entity__SuperTypeAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4596:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4597:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4597:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4598:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getEntityAccess().getSuperTypeEntityCrossReference_2_1_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4599:1: ( ruleQualifiedName )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4600:1: ruleQualifiedName
            {
             before(grammarAccess.getEntityAccess().getSuperTypeEntityQualifiedNameParserRuleCall_2_1_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__Entity__SuperTypeAssignment_2_19243);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getEntityAccess().getSuperTypeEntityQualifiedNameParserRuleCall_2_1_0_1()); 

            }

             after(grammarAccess.getEntityAccess().getSuperTypeEntityCrossReference_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__SuperTypeAssignment_2_1"


    // $ANTLR start "rule__Entity__AttributesAssignment_4"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4611:1: rule__Entity__AttributesAssignment_4 : ( ruleAttribute ) ;
    public final void rule__Entity__AttributesAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4615:1: ( ( ruleAttribute ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4616:1: ( ruleAttribute )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4616:1: ( ruleAttribute )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4617:1: ruleAttribute
            {
             before(grammarAccess.getEntityAccess().getAttributesAttributeParserRuleCall_4_0()); 
            pushFollow(FOLLOW_ruleAttribute_in_rule__Entity__AttributesAssignment_49278);
            ruleAttribute();

            state._fsp--;

             after(grammarAccess.getEntityAccess().getAttributesAttributeParserRuleCall_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__AttributesAssignment_4"


    // $ANTLR start "rule__Attribute__ManyAssignment_0"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4626:1: rule__Attribute__ManyAssignment_0 : ( ( 'many' ) ) ;
    public final void rule__Attribute__ManyAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4630:1: ( ( ( 'many' ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4631:1: ( ( 'many' ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4631:1: ( ( 'many' ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4632:1: ( 'many' )
            {
             before(grammarAccess.getAttributeAccess().getManyManyKeyword_0_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4633:1: ( 'many' )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4634:1: 'many'
            {
             before(grammarAccess.getAttributeAccess().getManyManyKeyword_0_0()); 
            match(input,40,FOLLOW_40_in_rule__Attribute__ManyAssignment_09314); 
             after(grammarAccess.getAttributeAccess().getManyManyKeyword_0_0()); 

            }

             after(grammarAccess.getAttributeAccess().getManyManyKeyword_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__ManyAssignment_0"


    // $ANTLR start "rule__Attribute__NameAssignment_1"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4649:1: rule__Attribute__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Attribute__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4653:1: ( ( RULE_ID ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4654:1: ( RULE_ID )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4654:1: ( RULE_ID )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4655:1: RULE_ID
            {
             before(grammarAccess.getAttributeAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Attribute__NameAssignment_19353); 
             after(grammarAccess.getAttributeAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__NameAssignment_1"


    // $ANTLR start "rule__Attribute__TypeAssignment_3"
    // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4664:1: rule__Attribute__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
    public final void rule__Attribute__TypeAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4668:1: ( ( ( ruleQualifiedName ) ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4669:1: ( ( ruleQualifiedName ) )
            {
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4669:1: ( ( ruleQualifiedName ) )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4670:1: ( ruleQualifiedName )
            {
             before(grammarAccess.getAttributeAccess().getTypeTypeCrossReference_3_0()); 
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4671:1: ( ruleQualifiedName )
            // ../org.xtext.example.cbsd.ui/src-gen/org/xtext/example/mydsl/ui/contentassist/antlr/internal/InternalComponentBasedSoftwareDevelopment.g:4672:1: ruleQualifiedName
            {
             before(grammarAccess.getAttributeAccess().getTypeTypeQualifiedNameParserRuleCall_3_0_1()); 
            pushFollow(FOLLOW_ruleQualifiedName_in_rule__Attribute__TypeAssignment_39388);
            ruleQualifiedName();

            state._fsp--;

             after(grammarAccess.getAttributeAccess().getTypeTypeQualifiedNameParserRuleCall_3_0_1()); 

            }

             after(grammarAccess.getAttributeAccess().getTypeTypeCrossReference_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__TypeAssignment_3"

    // Delegated rules


    protected DFA3 dfa3 = new DFA3(this);
    static final String DFA3_eotS =
        "\14\uffff";
    static final String DFA3_eofS =
        "\14\uffff";
    static final String DFA3_minS =
        "\1\4\1\31\1\uffff\1\4\1\17\1\4\5\uffff\1\17";
    static final String DFA3_maxS =
        "\1\23\1\31\1\uffff\1\4\1\30\1\4\5\uffff\1\30";
    static final String DFA3_acceptS =
        "\2\uffff\1\5\3\uffff\1\2\1\1\1\6\1\4\1\3\1\uffff";
    static final String DFA3_specialS =
        "\14\uffff}>";
    static final String[] DFA3_transitionS = {
            "\1\1\16\uffff\1\2",
            "\1\3",
            "",
            "\1\4",
            "\1\5\1\uffff\1\10\3\uffff\1\11\1\12\1\6\1\7",
            "\1\13",
            "",
            "",
            "",
            "",
            "",
            "\1\5\1\uffff\1\10\3\uffff\1\11\1\12\1\6\1\7"
    };

    static final short[] DFA3_eot = DFA.unpackEncodedString(DFA3_eotS);
    static final short[] DFA3_eof = DFA.unpackEncodedString(DFA3_eofS);
    static final char[] DFA3_min = DFA.unpackEncodedStringToUnsignedChars(DFA3_minS);
    static final char[] DFA3_max = DFA.unpackEncodedStringToUnsignedChars(DFA3_maxS);
    static final short[] DFA3_accept = DFA.unpackEncodedString(DFA3_acceptS);
    static final short[] DFA3_special = DFA.unpackEncodedString(DFA3_specialS);
    static final short[][] DFA3_transition;

    static {
        int numStates = DFA3_transitionS.length;
        DFA3_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA3_transition[i] = DFA.unpackEncodedString(DFA3_transitionS[i]);
        }
    }

    class DFA3 extends DFA {

        public DFA3(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 3;
            this.eot = DFA3_eot;
            this.eof = DFA3_eof;
            this.min = DFA3_min;
            this.max = DFA3_max;
            this.accept = DFA3_accept;
            this.special = DFA3_special;
            this.transition = DFA3_transition;
        }
        public String getDescription() {
            return "812:1: rule__ComponentStatement__Alternatives : ( ( ruleComponentFollowsConstraint ) | ( ruleComponentPrecedesConstraint ) | ( ruleComponentCausedbyConstraint ) | ( ruleComponentLeadstoConstraint ) | ( ruleComponentAlternationConstraint ) | ( ruleComponentBetweenConstraint ) );";
        }
    }
 

    public static final BitSet FOLLOW_ruleMain_in_entryRuleMain61 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMain68 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Main__ElementsAssignment_in_ruleMain94 = new BitSet(new long[]{0x0000006424004812L});
    public static final BitSet FOLLOW_ruleAbstractElement_in_entryRuleAbstractElement122 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAbstractElement129 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AbstractElement__Alternatives_in_ruleAbstractElement155 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePackageDeclaration_in_entryRulePackageDeclaration182 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePackageDeclaration189 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__0_in_rulePackageDeclaration215 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePackageImport_in_entryRulePackageImport242 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePackageImport249 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageImport__Group__0_in_rulePackageImport275 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName302 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedName309 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName335 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedNameWithWildCard_in_entryRuleQualifiedNameWithWildCard362 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNameWithWildCard369 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedNameWithWildCard__Group__0_in_ruleQualifiedNameWithWildCard395 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentStatement_in_entryRuleComponentStatement422 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleComponentStatement429 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentStatement__Alternatives_in_ruleComponentStatement455 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentBetweenConstraint_in_entryRuleComponentBetweenConstraint482 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleComponentBetweenConstraint489 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentBetweenConstraint__Group__0_in_ruleComponentBetweenConstraint515 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentAlternationConstraint_in_entryRuleComponentAlternationConstraint542 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleComponentAlternationConstraint549 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentAlternationConstraint__Group__0_in_ruleComponentAlternationConstraint575 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentLeadstoConstraint_in_entryRuleComponentLeadstoConstraint602 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleComponentLeadstoConstraint609 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentLeadstoConstraint__Group__0_in_ruleComponentLeadstoConstraint635 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentCausedbyConstraint_in_entryRuleComponentCausedbyConstraint662 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleComponentCausedbyConstraint669 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentCausedbyConstraint__Group__0_in_ruleComponentCausedbyConstraint695 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentPrecedesConstraint_in_entryRuleComponentPrecedesConstraint722 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleComponentPrecedesConstraint729 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentPrecedesConstraint__Group__0_in_ruleComponentPrecedesConstraint755 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentFollowsConstraint_in_entryRuleComponentFollowsConstraint782 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleComponentFollowsConstraint789 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentFollowsConstraint__Group__0_in_ruleComponentFollowsConstraint815 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_entryRuleComponentActionStatement842 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleComponentActionStatement849 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentActionStatement__Group__0_in_ruleComponentActionStatement875 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBindComponents_in_entryRuleBindComponents902 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleBindComponents909 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__0_in_ruleBindComponents935 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentInstance_in_entryRuleComponentInstance962 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleComponentInstance969 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentInstance__Group__0_in_ruleComponentInstance995 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponent_in_entryRuleComponent1022 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleComponent1029 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group__0_in_ruleComponent1055 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleContract_in_entryRuleContract1082 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleContract1089 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Contract__Group__0_in_ruleContract1115 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInterface_in_entryRuleInterface1142 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleInterface1149 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group__0_in_ruleInterface1175 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAction_in_entryRuleAction1202 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAction1209 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__Group__0_in_ruleAction1235 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleParameter_in_entryRuleParameter1262 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleParameter1269 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Parameter__Group__0_in_ruleParameter1295 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleType_in_entryRuleType1322 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleType1329 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Alternatives_in_ruleType1355 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataType_in_entryRuleDataType1382 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDataType1389 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataType__Group__0_in_ruleDataType1415 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEntity_in_entryRuleEntity1442 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEntity1449 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__0_in_ruleEntity1475 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAttribute_in_entryRuleAttribute1502 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAttribute1509 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__0_in_ruleAttribute1535 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePackageDeclaration_in_rule__AbstractElement__Alternatives1571 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponent_in_rule__AbstractElement__Alternatives1588 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleInterface_in_rule__AbstractElement__Alternatives1605 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleType_in_rule__AbstractElement__Alternatives1622 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentInstance_in_rule__AbstractElement__Alternatives1639 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePackageImport_in_rule__AbstractElement__Alternatives1656 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBindComponents_in_rule__AbstractElement__Alternatives1673 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentFollowsConstraint_in_rule__ComponentStatement__Alternatives1705 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentPrecedesConstraint_in_rule__ComponentStatement__Alternatives1722 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentCausedbyConstraint_in_rule__ComponentStatement__Alternatives1739 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentLeadstoConstraint_in_rule__ComponentStatement__Alternatives1756 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentAlternationConstraint_in_rule__ComponentStatement__Alternatives1773 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentBetweenConstraint_in_rule__ComponentStatement__Alternatives1790 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group_3_0__0_in_rule__Component__Alternatives_31822 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group_3_1__0_in_rule__Component__Alternatives_31840 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataType_in_rule__Type__Alternatives1873 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEntity_in_rule__Type__Alternatives1890 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__0__Impl_in_rule__PackageDeclaration__Group__01920 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__1_in_rule__PackageDeclaration__Group__01923 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_rule__PackageDeclaration__Group__0__Impl1951 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__1__Impl_in_rule__PackageDeclaration__Group__11982 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__2_in_rule__PackageDeclaration__Group__11985 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__NameAssignment_1_in_rule__PackageDeclaration__Group__1__Impl2012 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__2__Impl_in_rule__PackageDeclaration__Group__22042 = new BitSet(new long[]{0x0000006424006810L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__3_in_rule__PackageDeclaration__Group__22045 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__PackageDeclaration__Group__2__Impl2073 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__3__Impl_in_rule__PackageDeclaration__Group__32104 = new BitSet(new long[]{0x0000006424006810L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__4_in_rule__PackageDeclaration__Group__32107 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__ElementsAssignment_3_in_rule__PackageDeclaration__Group__3__Impl2134 = new BitSet(new long[]{0x0000006424004812L});
    public static final BitSet FOLLOW_rule__PackageDeclaration__Group__4__Impl_in_rule__PackageDeclaration__Group__42165 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__PackageDeclaration__Group__4__Impl2193 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageImport__Group__0__Impl_in_rule__PackageImport__Group__02234 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__PackageImport__Group__1_in_rule__PackageImport__Group__02237 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rule__PackageImport__Group__0__Impl2265 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageImport__Group__1__Impl_in_rule__PackageImport__Group__12296 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackageImport__ImportedNamespaceAssignment_1_in_rule__PackageImport__Group__1__Impl2323 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__0__Impl_in_rule__QualifiedName__Group__02357 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__1_in_rule__QualifiedName__Group__02360 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__QualifiedName__Group__0__Impl2387 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group__1__Impl_in_rule__QualifiedName__Group__12416 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0_in_rule__QualifiedName__Group__1__Impl2443 = new BitSet(new long[]{0x0000000000008002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0__Impl_in_rule__QualifiedName__Group_1__02478 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1_in_rule__QualifiedName__Group_1__02481 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__QualifiedName__Group_1__0__Impl2509 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1__Impl_in_rule__QualifiedName__Group_1__12540 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__QualifiedName__Group_1__1__Impl2567 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedNameWithWildCard__Group__0__Impl_in_rule__QualifiedNameWithWildCard__Group__02600 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_rule__QualifiedNameWithWildCard__Group__1_in_rule__QualifiedNameWithWildCard__Group__02603 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__QualifiedNameWithWildCard__Group__0__Impl2630 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__QualifiedNameWithWildCard__Group__1__Impl_in_rule__QualifiedNameWithWildCard__Group__12659 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__QualifiedNameWithWildCard__Group__1__Impl2688 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentBetweenConstraint__Group__0__Impl_in_rule__ComponentBetweenConstraint__Group__02725 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_rule__ComponentBetweenConstraint__Group__1_in_rule__ComponentBetweenConstraint__Group__02728 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentBetweenConstraint__MiddleActionAssignment_0_in_rule__ComponentBetweenConstraint__Group__0__Impl2755 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentBetweenConstraint__Group__1__Impl_in_rule__ComponentBetweenConstraint__Group__12785 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ComponentBetweenConstraint__Group__2_in_rule__ComponentBetweenConstraint__Group__12788 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__ComponentBetweenConstraint__Group__1__Impl2816 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentBetweenConstraint__Group__2__Impl_in_rule__ComponentBetweenConstraint__Group__22847 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_rule__ComponentBetweenConstraint__Group__3_in_rule__ComponentBetweenConstraint__Group__22850 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentBetweenConstraint__BeforeActionAssignment_2_in_rule__ComponentBetweenConstraint__Group__2__Impl2877 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentBetweenConstraint__Group__3__Impl_in_rule__ComponentBetweenConstraint__Group__32907 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ComponentBetweenConstraint__Group__4_in_rule__ComponentBetweenConstraint__Group__32910 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__ComponentBetweenConstraint__Group__3__Impl2938 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentBetweenConstraint__Group__4__Impl_in_rule__ComponentBetweenConstraint__Group__42969 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentBetweenConstraint__AfterActionAssignment_4_in_rule__ComponentBetweenConstraint__Group__4__Impl2996 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentAlternationConstraint__Group__0__Impl_in_rule__ComponentAlternationConstraint__Group__03036 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ComponentAlternationConstraint__Group__1_in_rule__ComponentAlternationConstraint__Group__03039 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__ComponentAlternationConstraint__Group__0__Impl3067 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentAlternationConstraint__Group__1__Impl_in_rule__ComponentAlternationConstraint__Group__13098 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_rule__ComponentAlternationConstraint__Group__2_in_rule__ComponentAlternationConstraint__Group__13101 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentAlternationConstraint__Action1Assignment_1_in_rule__ComponentAlternationConstraint__Group__1__Impl3128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentAlternationConstraint__Group__2__Impl_in_rule__ComponentAlternationConstraint__Group__23158 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ComponentAlternationConstraint__Group__3_in_rule__ComponentAlternationConstraint__Group__23161 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__ComponentAlternationConstraint__Group__2__Impl3189 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentAlternationConstraint__Group__3__Impl_in_rule__ComponentAlternationConstraint__Group__33220 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentAlternationConstraint__Action2Assignment_3_in_rule__ComponentAlternationConstraint__Group__3__Impl3247 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentLeadstoConstraint__Group__0__Impl_in_rule__ComponentLeadstoConstraint__Group__03285 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_rule__ComponentLeadstoConstraint__Group__1_in_rule__ComponentLeadstoConstraint__Group__03288 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentLeadstoConstraint__LeftActionAssignment_0_in_rule__ComponentLeadstoConstraint__Group__0__Impl3315 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentLeadstoConstraint__Group__1__Impl_in_rule__ComponentLeadstoConstraint__Group__13345 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ComponentLeadstoConstraint__Group__2_in_rule__ComponentLeadstoConstraint__Group__13348 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__ComponentLeadstoConstraint__Group__1__Impl3376 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentLeadstoConstraint__Group__2__Impl_in_rule__ComponentLeadstoConstraint__Group__23407 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentLeadstoConstraint__RightActionAssignment_2_in_rule__ComponentLeadstoConstraint__Group__2__Impl3434 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentCausedbyConstraint__Group__0__Impl_in_rule__ComponentCausedbyConstraint__Group__03470 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_rule__ComponentCausedbyConstraint__Group__1_in_rule__ComponentCausedbyConstraint__Group__03473 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentCausedbyConstraint__LeftActionAssignment_0_in_rule__ComponentCausedbyConstraint__Group__0__Impl3500 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentCausedbyConstraint__Group__1__Impl_in_rule__ComponentCausedbyConstraint__Group__13530 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ComponentCausedbyConstraint__Group__2_in_rule__ComponentCausedbyConstraint__Group__13533 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__ComponentCausedbyConstraint__Group__1__Impl3561 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentCausedbyConstraint__Group__2__Impl_in_rule__ComponentCausedbyConstraint__Group__23592 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentCausedbyConstraint__RightActionAssignment_2_in_rule__ComponentCausedbyConstraint__Group__2__Impl3619 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentPrecedesConstraint__Group__0__Impl_in_rule__ComponentPrecedesConstraint__Group__03655 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__ComponentPrecedesConstraint__Group__1_in_rule__ComponentPrecedesConstraint__Group__03658 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentPrecedesConstraint__LeftActionAssignment_0_in_rule__ComponentPrecedesConstraint__Group__0__Impl3685 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentPrecedesConstraint__Group__1__Impl_in_rule__ComponentPrecedesConstraint__Group__13715 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ComponentPrecedesConstraint__Group__2_in_rule__ComponentPrecedesConstraint__Group__13718 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__ComponentPrecedesConstraint__Group__1__Impl3746 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentPrecedesConstraint__Group__2__Impl_in_rule__ComponentPrecedesConstraint__Group__23777 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentPrecedesConstraint__RightActionAssignment_2_in_rule__ComponentPrecedesConstraint__Group__2__Impl3804 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentFollowsConstraint__Group__0__Impl_in_rule__ComponentFollowsConstraint__Group__03840 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__ComponentFollowsConstraint__Group__1_in_rule__ComponentFollowsConstraint__Group__03843 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentFollowsConstraint__LeftActionAssignment_0_in_rule__ComponentFollowsConstraint__Group__0__Impl3870 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentFollowsConstraint__Group__1__Impl_in_rule__ComponentFollowsConstraint__Group__13900 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ComponentFollowsConstraint__Group__2_in_rule__ComponentFollowsConstraint__Group__13903 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__ComponentFollowsConstraint__Group__1__Impl3931 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentFollowsConstraint__Group__2__Impl_in_rule__ComponentFollowsConstraint__Group__23962 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentFollowsConstraint__RightActionAssignment_2_in_rule__ComponentFollowsConstraint__Group__2__Impl3989 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentActionStatement__Group__0__Impl_in_rule__ComponentActionStatement__Group__04025 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__ComponentActionStatement__Group__1_in_rule__ComponentActionStatement__Group__04028 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentActionStatement__ContractAssignment_0_in_rule__ComponentActionStatement__Group__0__Impl4055 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentActionStatement__Group__1__Impl_in_rule__ComponentActionStatement__Group__14085 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ComponentActionStatement__Group__2_in_rule__ComponentActionStatement__Group__14088 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__ComponentActionStatement__Group__1__Impl4116 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentActionStatement__Group__2__Impl_in_rule__ComponentActionStatement__Group__24147 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentActionStatement__ActionAssignment_2_in_rule__ComponentActionStatement__Group__2__Impl4174 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__0__Impl_in_rule__BindComponents__Group__04210 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__1_in_rule__BindComponents__Group__04213 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__BindComponents__Group__0__Impl4241 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__1__Impl_in_rule__BindComponents__Group__14272 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__2_in_rule__BindComponents__Group__14275 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BindComponents__LeftComponentAssignment_1_in_rule__BindComponents__Group__1__Impl4302 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__2__Impl_in_rule__BindComponents__Group__24332 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__3_in_rule__BindComponents__Group__24335 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__BindComponents__Group__2__Impl4363 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__3__Impl_in_rule__BindComponents__Group__34394 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__4_in_rule__BindComponents__Group__34397 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BindComponents__LeftContractAssignment_3_in_rule__BindComponents__Group__3__Impl4424 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__4__Impl_in_rule__BindComponents__Group__44454 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__5_in_rule__BindComponents__Group__44457 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__BindComponents__Group__4__Impl4485 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__5__Impl_in_rule__BindComponents__Group__54516 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__6_in_rule__BindComponents__Group__54519 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BindComponents__RightComponentAssignment_5_in_rule__BindComponents__Group__5__Impl4546 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__6__Impl_in_rule__BindComponents__Group__64576 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__7_in_rule__BindComponents__Group__64579 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__BindComponents__Group__6__Impl4607 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BindComponents__Group__7__Impl_in_rule__BindComponents__Group__74638 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BindComponents__RightContractAssignment_7_in_rule__BindComponents__Group__7__Impl4665 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentInstance__Group__0__Impl_in_rule__ComponentInstance__Group__04711 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_rule__ComponentInstance__Group__1_in_rule__ComponentInstance__Group__04714 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentInstance__NameAssignment_0_in_rule__ComponentInstance__Group__0__Impl4741 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentInstance__Group__1__Impl_in_rule__ComponentInstance__Group__14771 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ComponentInstance__Group__2_in_rule__ComponentInstance__Group__14774 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__ComponentInstance__Group__1__Impl4802 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentInstance__Group__2__Impl_in_rule__ComponentInstance__Group__24833 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ComponentInstance__ComponentAssignment_2_in_rule__ComponentInstance__Group__2__Impl4860 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group__0__Impl_in_rule__Component__Group__04896 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Component__Group__1_in_rule__Component__Group__04899 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__Component__Group__0__Impl4927 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group__1__Impl_in_rule__Component__Group__14958 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_rule__Component__Group__2_in_rule__Component__Group__14961 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__NameAssignment_1_in_rule__Component__Group__1__Impl4988 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group__2__Impl_in_rule__Component__Group__25018 = new BitSet(new long[]{0x00000001C0002000L});
    public static final BitSet FOLLOW_rule__Component__Group__3_in_rule__Component__Group__25021 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__Component__Group__2__Impl5049 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group__3__Impl_in_rule__Component__Group__35080 = new BitSet(new long[]{0x00000001C0002000L});
    public static final BitSet FOLLOW_rule__Component__Group__4_in_rule__Component__Group__35083 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Alternatives_3_in_rule__Component__Group__3__Impl5110 = new BitSet(new long[]{0x00000000C0000002L});
    public static final BitSet FOLLOW_rule__Component__Group__4__Impl_in_rule__Component__Group__45141 = new BitSet(new long[]{0x00000001C0002000L});
    public static final BitSet FOLLOW_rule__Component__Group__5_in_rule__Component__Group__45144 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group_4__0_in_rule__Component__Group__4__Impl5171 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group__5__Impl_in_rule__Component__Group__55202 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__Component__Group__5__Impl5230 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group_3_0__0__Impl_in_rule__Component__Group_3_0__05273 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Component__Group_3_0__1_in_rule__Component__Group_3_0__05276 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__Component__Group_3_0__0__Impl5304 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group_3_0__1__Impl_in_rule__Component__Group_3_0__15335 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__ProvidesAssignment_3_0_1_in_rule__Component__Group_3_0__1__Impl5362 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group_3_1__0__Impl_in_rule__Component__Group_3_1__05396 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Component__Group_3_1__1_in_rule__Component__Group_3_1__05399 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Component__Group_3_1__0__Impl5427 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group_3_1__1__Impl_in_rule__Component__Group_3_1__15458 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__RequiresAssignment_3_1_1_in_rule__Component__Group_3_1__1__Impl5485 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group_4__0__Impl_in_rule__Component__Group_4__05519 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_rule__Component__Group_4__1_in_rule__Component__Group_4__05522 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__Component__Group_4__0__Impl5550 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group_4__1__Impl_in_rule__Component__Group_4__15581 = new BitSet(new long[]{0x0000000000082010L});
    public static final BitSet FOLLOW_rule__Component__Group_4__2_in_rule__Component__Group_4__15584 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__Component__Group_4__1__Impl5612 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__Group_4__2__Impl_in_rule__Component__Group_4__25643 = new BitSet(new long[]{0x0000000000082010L});
    public static final BitSet FOLLOW_rule__Component__Group_4__3_in_rule__Component__Group_4__25646 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Component__StatementsAssignment_4_2_in_rule__Component__Group_4__2__Impl5673 = new BitSet(new long[]{0x0000000000080012L});
    public static final BitSet FOLLOW_rule__Component__Group_4__3__Impl_in_rule__Component__Group_4__35704 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__Component__Group_4__3__Impl5732 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Contract__Group__0__Impl_in_rule__Contract__Group__05771 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_rule__Contract__Group__1_in_rule__Contract__Group__05774 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Contract__NameAssignment_0_in_rule__Contract__Group__0__Impl5801 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Contract__Group__1__Impl_in_rule__Contract__Group__15831 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Contract__Group__2_in_rule__Contract__Group__15834 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Contract__Group__1__Impl5862 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Contract__Group__2__Impl_in_rule__Contract__Group__25893 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Contract__InterfaceAssignment_2_in_rule__Contract__Group__2__Impl5920 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group__0__Impl_in_rule__Interface__Group__05956 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Interface__Group__1_in_rule__Interface__Group__05959 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_rule__Interface__Group__0__Impl5987 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group__1__Impl_in_rule__Interface__Group__16018 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_rule__Interface__Group__2_in_rule__Interface__Group__16021 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__NameAssignment_1_in_rule__Interface__Group__1__Impl6048 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group__2__Impl_in_rule__Interface__Group__26078 = new BitSet(new long[]{0x0000000000002010L});
    public static final BitSet FOLLOW_rule__Interface__Group__3_in_rule__Interface__Group__26081 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__Interface__Group__2__Impl6109 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__Group__3__Impl_in_rule__Interface__Group__36140 = new BitSet(new long[]{0x0000000000002010L});
    public static final BitSet FOLLOW_rule__Interface__Group__4_in_rule__Interface__Group__36143 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Interface__ActionsAssignment_3_in_rule__Interface__Group__3__Impl6170 = new BitSet(new long[]{0x0000000000000012L});
    public static final BitSet FOLLOW_rule__Interface__Group__4__Impl_in_rule__Interface__Group__46201 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__Interface__Group__4__Impl6229 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__Group__0__Impl_in_rule__Action__Group__06270 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Action__Group__1_in_rule__Action__Group__06273 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__ReturnAssignment_0_in_rule__Action__Group__0__Impl6300 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__Group__1__Impl_in_rule__Action__Group__16330 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_rule__Action__Group__2_in_rule__Action__Group__16333 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__NameAssignment_1_in_rule__Action__Group__1__Impl6360 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__Group__2__Impl_in_rule__Action__Group__26390 = new BitSet(new long[]{0x0000001000000010L});
    public static final BitSet FOLLOW_rule__Action__Group__3_in_rule__Action__Group__26393 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__Action__Group__2__Impl6421 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__Group__3__Impl_in_rule__Action__Group__36452 = new BitSet(new long[]{0x0000001000000010L});
    public static final BitSet FOLLOW_rule__Action__Group__4_in_rule__Action__Group__36455 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__Group_3__0_in_rule__Action__Group__3__Impl6482 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__Group__4__Impl_in_rule__Action__Group__46513 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_rule__Action__Group__4__Impl6541 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__Group_3__0__Impl_in_rule__Action__Group_3__06582 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_rule__Action__Group_3__1_in_rule__Action__Group_3__06585 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__ParametersAssignment_3_0_in_rule__Action__Group_3__0__Impl6612 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__Group_3__1__Impl_in_rule__Action__Group_3__16642 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__Group_3_1__0_in_rule__Action__Group_3__1__Impl6669 = new BitSet(new long[]{0x0000000000100002L});
    public static final BitSet FOLLOW_rule__Action__Group_3_1__0__Impl_in_rule__Action__Group_3_1__06704 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Action__Group_3_1__1_in_rule__Action__Group_3_1__06707 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__Action__Group_3_1__0__Impl6735 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__Group_3_1__1__Impl_in_rule__Action__Group_3_1__16766 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Action__ParametersAssignment_3_1_1_in_rule__Action__Group_3_1__1__Impl6793 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Parameter__Group__0__Impl_in_rule__Parameter__Group__06827 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_rule__Parameter__Group__1_in_rule__Parameter__Group__06830 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Parameter__NameAssignment_0_in_rule__Parameter__Group__0__Impl6857 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Parameter__Group__1__Impl_in_rule__Parameter__Group__16887 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Parameter__Group__2_in_rule__Parameter__Group__16890 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Parameter__Group__1__Impl6918 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Parameter__Group__2__Impl_in_rule__Parameter__Group__26949 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Parameter__TypeAssignment_2_in_rule__Parameter__Group__2__Impl6976 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataType__Group__0__Impl_in_rule__DataType__Group__07012 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__DataType__Group__1_in_rule__DataType__Group__07015 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__DataType__Group__0__Impl7043 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataType__Group__1__Impl_in_rule__DataType__Group__17074 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataType__NameAssignment_1_in_rule__DataType__Group__1__Impl7101 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__0__Impl_in_rule__Entity__Group__07135 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Entity__Group__1_in_rule__Entity__Group__07138 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__Entity__Group__0__Impl7166 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__1__Impl_in_rule__Entity__Group__17197 = new BitSet(new long[]{0x0000008000001000L});
    public static final BitSet FOLLOW_rule__Entity__Group__2_in_rule__Entity__Group__17200 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__NameAssignment_1_in_rule__Entity__Group__1__Impl7227 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__2__Impl_in_rule__Entity__Group__27257 = new BitSet(new long[]{0x0000008000001000L});
    public static final BitSet FOLLOW_rule__Entity__Group__3_in_rule__Entity__Group__27260 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__0_in_rule__Entity__Group__2__Impl7287 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__3__Impl_in_rule__Entity__Group__37318 = new BitSet(new long[]{0x0000010000002010L});
    public static final BitSet FOLLOW_rule__Entity__Group__4_in_rule__Entity__Group__37321 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__Entity__Group__3__Impl7349 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__4__Impl_in_rule__Entity__Group__47380 = new BitSet(new long[]{0x0000010000002010L});
    public static final BitSet FOLLOW_rule__Entity__Group__5_in_rule__Entity__Group__47383 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__AttributesAssignment_4_in_rule__Entity__Group__4__Impl7410 = new BitSet(new long[]{0x0000010000000012L});
    public static final BitSet FOLLOW_rule__Entity__Group__5__Impl_in_rule__Entity__Group__57441 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__Entity__Group__5__Impl7469 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__0__Impl_in_rule__Entity__Group_2__07512 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__1_in_rule__Entity__Group_2__07515 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_rule__Entity__Group_2__0__Impl7543 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__1__Impl_in_rule__Entity__Group_2__17574 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__SuperTypeAssignment_2_1_in_rule__Entity__Group_2__1__Impl7601 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__0__Impl_in_rule__Attribute__Group__07635 = new BitSet(new long[]{0x0000010000000010L});
    public static final BitSet FOLLOW_rule__Attribute__Group__1_in_rule__Attribute__Group__07638 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__ManyAssignment_0_in_rule__Attribute__Group__0__Impl7665 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__1__Impl_in_rule__Attribute__Group__17696 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_rule__Attribute__Group__2_in_rule__Attribute__Group__17699 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__NameAssignment_1_in_rule__Attribute__Group__1__Impl7726 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__2__Impl_in_rule__Attribute__Group__27756 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Attribute__Group__3_in_rule__Attribute__Group__27759 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__Attribute__Group__2__Impl7787 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__3__Impl_in_rule__Attribute__Group__37818 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__TypeAssignment_3_in_rule__Attribute__Group__3__Impl7845 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractElement_in_rule__Main__ElementsAssignment7888 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__PackageDeclaration__NameAssignment_17919 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractElement_in_rule__PackageDeclaration__ElementsAssignment_37950 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedNameWithWildCard_in_rule__PackageImport__ImportedNamespaceAssignment_17981 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_rule__ComponentBetweenConstraint__MiddleActionAssignment_08012 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_rule__ComponentBetweenConstraint__BeforeActionAssignment_28043 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_rule__ComponentBetweenConstraint__AfterActionAssignment_48074 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_rule__ComponentAlternationConstraint__Action1Assignment_18105 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_rule__ComponentAlternationConstraint__Action2Assignment_38136 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_rule__ComponentLeadstoConstraint__LeftActionAssignment_08167 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_rule__ComponentLeadstoConstraint__RightActionAssignment_28198 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_rule__ComponentCausedbyConstraint__LeftActionAssignment_08229 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_rule__ComponentCausedbyConstraint__RightActionAssignment_28260 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_rule__ComponentPrecedesConstraint__LeftActionAssignment_08291 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_rule__ComponentPrecedesConstraint__RightActionAssignment_28322 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_rule__ComponentFollowsConstraint__LeftActionAssignment_08353 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentActionStatement_in_rule__ComponentFollowsConstraint__RightActionAssignment_28384 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__ComponentActionStatement__ContractAssignment_08419 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__ComponentActionStatement__ActionAssignment_28458 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__BindComponents__LeftComponentAssignment_18497 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__BindComponents__LeftContractAssignment_38536 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__BindComponents__RightComponentAssignment_58575 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__BindComponents__RightContractAssignment_78614 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__ComponentInstance__NameAssignment_08649 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__ComponentInstance__ComponentAssignment_28684 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Component__NameAssignment_18719 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleContract_in_rule__Component__ProvidesAssignment_3_0_18750 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleContract_in_rule__Component__RequiresAssignment_3_1_18781 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleComponentStatement_in_rule__Component__StatementsAssignment_4_28812 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Contract__NameAssignment_08843 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__Contract__InterfaceAssignment_28878 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Interface__NameAssignment_18913 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAction_in_rule__Interface__ActionsAssignment_38944 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__Action__ReturnAssignment_08979 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Action__NameAssignment_19014 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleParameter_in_rule__Action__ParametersAssignment_3_09045 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleParameter_in_rule__Action__ParametersAssignment_3_1_19076 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Parameter__NameAssignment_09107 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__Parameter__TypeAssignment_29142 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__DataType__NameAssignment_19177 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Entity__NameAssignment_19208 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__Entity__SuperTypeAssignment_2_19243 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAttribute_in_rule__Entity__AttributesAssignment_49278 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__Attribute__ManyAssignment_09314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Attribute__NameAssignment_19353 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleQualifiedName_in_rule__Attribute__TypeAssignment_39388 = new BitSet(new long[]{0x0000000000000002L});

}